位置: 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)

  • 契税通过应交税费
  • 其他应付款转实收资本有风险吗
  • 运输公司加计扣除
  • 留抵税额账上比申报表多280
  • 金蝶销售订单和采购订单关联
  • 资产负债表中应收账款
  • 汇算清缴补缴纳企业所得税会计分录
  • 通信协会费入什么科目
  • 临时设施费怎么结算
  • 每股收益的无差别点小于息税前利润选择什么筹资方式
  • 小规模建筑企业预缴税款
  • 分公司亏损还会分摊所得税吗
  • 2016年的发票可以用到什么时候
  • 银行和保险公司是什么关系
  • 自然人税收申报显示申报失败:未选择纳税人
  • 设备升级改造如何开发票
  • 抵扣发票可以在哪里抵扣
  • 法律诉讼费计入什么会计科目
  • 公司组织的团建受伤算工伤吗
  • win11 zen1
  • 出差补贴算工资薪金吗
  • 只有土地使用权房子拆了怎么办
  • 水利基金返还分录怎么写
  • 房地产企业的沙盘模型制作费会计处理
  • linux中php的作用
  • 查补增值税的会计处理
  • 应付债券的会计处理
  • php中strrev
  • 为员工购买商业保险的通知
  • minilauncher是什么
  • PHP:zip_entry_read()的用法_Zip函数
  • 在vue3项目中自定义组件通常存放在
  • 资产减值对应科目
  • 以前年度损益调整会计分录
  • php curl_exec
  • 麻雀优化算法和鲸鱼算法哪个好
  • 小程序开发要钱吗
  • 保险外币业务
  • 加油站的卷式发票能抵扣吗
  • 奖金没有做到工资里怎么入账
  • 工资表中可以出现减号的情况吗
  • python统计出现次数并排序
  • 业务员奖金
  • 新的会计制度
  • 异地托收承付结算ppt
  • 个人独资企业最新税收政策
  • 车保险名称
  • 视同销售的几种情况都有什么?
  • 应收账款平均余额怎么理解
  • 发票加上税额之后怎么还多了呢
  • 公司交的养老保险的钱可以取出来吗
  • 发票不按实际数量单价开 但金额一致
  • 股东投资款超过注册资金的案例
  • 支付劳务公司的劳务费如何扣缴个人所得税?
  • 房地产经纪公司排名
  • 应交税费月底怎么结账
  • 固定资产的入账价值包括增值税吗?
  • 资产负债表本期没有发生额怎么填
  • 为什么规定视同销售?
  • ubuntu chsh
  • macos rootless
  • 无windows什么意思
  • win10系统功能大全
  • Remoterm.exe - Remoterm是什么进程 有什么用
  • win10系统资源管理器怎么重新安装
  • linux shell !
  • 进入linux命令行
  • unity对象池优缺点
  • androidstudio更改工程名字
  • Lesson01_05 HTML中的超链接
  • python redis hmset
  • eclipse4.9.0安装windowbuilder
  • typeof的缺点
  • unity连接
  • javascript教学视频
  • 白盘怎么开具红字专用发票
  • 小规模纳税人税费怎么算
  • 什么叫税务协查
  • 全面推进行政执法公示制度包含的主要内容有
  • 国办函和国办发
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设