位置: IT常识 - 正文

浅谈 JSON 对象和 FormData 相互转换,打通前端与后端的通信血脉(json与对象的区别)

编辑:rootadmin
浅谈 JSON 对象和 FormData 相互转换,打通前端与后端的通信血脉 前言

推荐整理分享浅谈 JSON 对象和 FormData 相互转换,打通前端与后端的通信血脉(json与对象的区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:json对象与json字符串的区别,json与对象的区别,json对象是什么类型,json对象和javascript对象,json与对象,json对象和java对象的区别,json对象和java对象的区别,json对象和javascript对象,内容如对您有帮助,希望把文章链接给更多的朋友!

大家都知道,前端在和后台进行交互联调时,肯定避免不了要传递参数,一般情况下,params 在 get 请求中使用,而 post 请求下,我们有两种常见的传参方式: JSON 对象格式和 formData 格式,但是一些场景是需要我们对这两种数据格式进行转换的,例如表单提交,有些是 JSON 对象格式的数据,有些是 FormData 格式的数据,这个时候就需要我们对其进行转换。

常见的 POST 提交数据方式1. application/x-www-form-urlencoded

表单格式提交数据,通过 form 标签的 action 属性,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。

2. multipart/form-data

这也是一个常见的 post 数据提交的方式,我们使用表单上传文件时,就要让 form 的 enctype 等于这个值,多用于文件上传。

3. application/json

application/json 这个 Content-Type 作为响应头大家肯定不陌生,客观来说,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 json 字符串。由于 json 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 json 的函数,使用 json 不会遇上什么麻烦,并且 json 格式支持比键值对复杂的多的结构化数据。

4. text/xml

相比于 json,xml 不能更好的适用于数据交换,它包含了太多的包装,而且它跟大多数编程语言的数据模型不匹配,xml 是面向数据的,json 是面向对象和结构的。目前多用于 XML 存储数据,存储配置文件等需要结构化存储的地方使用。

JSON 格式和 formData 格式的区别

JSON 请求头:

浅谈 JSON 对象和 FormData 相互转换,打通前端与后端的通信血脉(json与对象的区别)

JSON 负荷:

formData 请求头:

formData 负荷:

通过上面的几张图我们就能大概明白了,前端传的都是二进制数据,两者的 content-type 是不同的,json 我们已经序列化好了,而 formdata 还是需要进行处理。

formdata 的两种格式

multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。json 对象转 formData

逐个转换

let obj = { id: "001", name: "小蓝", age: "18", sex: "女",};const formData = new FormData();formData.append("id", obj.id);formData.append("name", obj.name);formData.append("age", obj.age);formData.append("sex", obj.sex);console.log(formData);

所有属性值转换

let obj = { id: "001", name: "小蓝", age: "18", sex: "女",};const formData = new FormData();Object.keys(obj).map((key) => { formData.append(key, obj[key]);});console.log(formData);formData 对象转 jsonvar jsonObj = {};formData.forEach((value, key) => (jsonObj[key] = value));
本文链接地址:https://www.jiuchutong.com/zhishi/298322.html 转载请保留说明!

上一篇:机器学习篇-指标:AUC

下一篇:图片格式转换(File、Blob、base64)(图片格式转换pdf)

  • 网站标题究竟怎样写最好?(网站标题格式)

    网站标题究竟怎样写最好?(网站标题格式)

  • 小米10的机身尺寸是多少(小米10的机身尺寸)

    小米10的机身尺寸是多少(小米10的机身尺寸)

  • 淘宝年底什么时候停止发货(淘宝年底什么时候放假)

    淘宝年底什么时候停止发货(淘宝年底什么时候放假)

  • oppo保存视频不在相册(oppoa53手机视频保存不到相册)

    oppo保存视频不在相册(oppoa53手机视频保存不到相册)

  • 微信警告处理什么意思(微信警告处理什么后果)

    微信警告处理什么意思(微信警告处理什么后果)

  • 手机内屏碎了怎么补救(手机内屏碎了怎么把数据导出来)

    手机内屏碎了怎么补救(手机内屏碎了怎么把数据导出来)

  • 钉钉可以上传多大的视频(钉钉可以上传多长时间的视频)

    钉钉可以上传多大的视频(钉钉可以上传多长时间的视频)

  • 快手怎么举报人(快手怎么举报人他给我私信发不好的图片我怎么举报他)

    快手怎么举报人(快手怎么举报人他给我私信发不好的图片我怎么举报他)

  • 登录中国移动收不到验证码怎么办(登录中国移动收不到验证码怎么办多久能收到)

    登录中国移动收不到验证码怎么办(登录中国移动收不到验证码怎么办多久能收到)

  • 在开始选项卡的哪个组中可以设置条件格式(在开始选项卡的字体工具栏中u表示的含义是)

    在开始选项卡的哪个组中可以设置条件格式(在开始选项卡的字体工具栏中u表示的含义是)

  • qq显示离线请留言是什么意思(QQ显示离线请留言是退出登录了吗)

    qq显示离线请留言是什么意思(QQ显示离线请留言是退出登录了吗)

  • 阿里巴巴在哪里注册的公司(阿里巴巴在哪里注册成立的)

    阿里巴巴在哪里注册的公司(阿里巴巴在哪里注册成立的)

  • 为什么华为运动步数只显示0(为什么华为运动健康不显示心率)

    为什么华为运动步数只显示0(为什么华为运动健康不显示心率)

  • 怎么把照片以文件发送(怎么把照片以文件形式发出去)

    怎么把照片以文件发送(怎么把照片以文件形式发出去)

  • vx一天能加多少群(vx一天加多少人正常)

    vx一天能加多少群(vx一天加多少人正常)

  • 小米平板2如何恢复出厂(小米平板2如何恢复出厂设置)

    小米平板2如何恢复出厂(小米平板2如何恢复出厂设置)

  • 微店可以无理由退货吗(微店无理由退货有保障吗)

    微店可以无理由退货吗(微店无理由退货有保障吗)

  • WPS怎么自动排序(wps怎么自动排序大小)

    WPS怎么自动排序(wps怎么自动排序大小)

  • 小度在家需要网络吗(小度在家需要wifi吗)

    小度在家需要网络吗(小度在家需要wifi吗)

  • JS类型转换(js如何转换为数值型)

    JS类型转换(js如何转换为数值型)

  • tcpdump命令  监听网络流量(tcpdump 监听指定端口)

    tcpdump命令 监听网络流量(tcpdump 监听指定端口)

  • 对外支付人民币存在残缺污损的问题
  • 免抵退税和留抵退税可以一起退吗
  • 中国电信的通信网络
  • 上月留抵进项本月抵扣会计分录
  • 结转已销商品的成本的会计科目有哪些
  • 为什么开发成本资本化
  • 增值税专票丢了能补开吗
  • 本币原值是什么意思
  • 纳税筹划与企业决策
  • 善意接受虚开发票只能自认倒霉么
  • 企业发生破产清算
  • 房地产开发企业土地增值税清算
  • 一般借款资本化加权平均数
  • 劳务公司的员工与正式员工
  • 先进制造业企业按照当期可抵扣进项税额
  • 还没入库,发票已经给财务了 怎么办
  • 境外分回的股息并入应纳税所得
  • 公司外部人员可以直接在公司报销吗
  • 有发票的福利费可以不交个税吗
  • 销项发票采集不出来怎么回事
  • 小规模纳税人核定征收怎么报税
  • 独资企业个人所得税汇算清缴
  • 递延所得税费用为负数是什么意思
  • 个人房产税征收标准
  • 拿到进项票下一步做啥
  • 股东入资印花税怎么计算
  • 营改增后,代扣代缴所得税应当按照含税收入还是不含税收入?
  • 融资性售后回租按什么缴纳增值税
  • 店内上保险退保
  • 子公司代发母公司人员工资
  • 计提的利息收入交所得税吗
  • 可以在企业所得税税前扣除的税金有
  • 委托采购是什么意思
  • 电脑bios启动项设置
  • 监理多计量承担什么责任
  • php解析原理
  • php基于反射机制实验报告
  • fast processing
  • PHP:Memcached::touch()的用法_Memcached类
  • 门面出租赚钱吗
  • 海狸岛好玩吗
  • 小规模企业需要交几个点
  • easyui表格分页
  • 企业生产车间发生的费用会计科目
  • unet bn
  • gbdrt
  • win11更新22468
  • 关联公司开发票
  • php安装步骤
  • 小规模纳税人进项发票怎么做账
  • 固定资产折旧方法和计算公式
  • 科目余额表和资产负债表的期末余额不一样,怎么办
  • 股票手续费如何计算公式
  • 将借款存入银行会计分录
  • 建筑行业跨期收益怎么算
  • 园林绿化公司的税率是多少
  • 退票费凭证可以用于报销吗?
  • centos6.2安装
  • mysql理论知识
  • winxp系统开机蓝屏
  • msng.exe病毒
  • fsma32.exe进程是什么文件 fsma32是什么进程
  • retail版win10
  • python模拟reversed功能
  • 跑酷游戏cs
  • cocos2dx官方教程
  • opengl绘制球面
  • jQuery插件能输出到控制台
  • shell中数组如何定义
  • python数据验证
  • 下载随手笔记
  • 使用jquery操作dom
  • python utils模块
  • 印花税在哪里查询
  • 税务部门组织收入会议报道
  • 打印发票需要什么信息
  • 百旺税控盘口令认证失败pin锁定怎么办
  • 集美区区委书记什么级别
  • 地摊经济火了,月薪8000元
  • 地方税务局是事业单位吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设