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

  • 房产税的纳税义务人是房屋的产权所有人
  • 出口退税通俗理解
  • 工业厂房房产税税率
  • 教育培训行业成本怎么结转
  • 怎么从其他公司挖人
  • 租入房租装修费摊销
  • 天猫的费用一共17个分别是什么
  • 税务局代开的劳务费发票可以入账吗
  • 差旅费出差补助如何计算天数
  • 发放外单位人员奖金 个人所得税
  • 企业所得税怎么征收
  • 股权收购的好处
  • 已经建立了某个公司
  • 房地产开发企业预收款预缴增值税
  • 科技公司营业执照经营范围明细
  • 工会经费用于什么
  • 公司一年未经营怎么赔偿
  • 代开专票地税没交怎么办?
  • 有效期起止时间段与已有备案有效期有交集
  • 发票入账后还能冲红吗
  • 生产成本转入库存商品金额怎么算
  • 开票人为什么不能改
  • 1697507434
  • 公会经费开支范围
  • 固定资产质保金计入什么科目
  • MAC系统如何卸载重装安装W7系统
  • 软件维护费清单
  • 工业园租金大概是多少
  • 进口免费赠送报成了一般贸易
  • uniapp中的onload
  • 苹果手机屏幕旋转怎么设置关闭
  • 新购固定资产账务处理
  • php redis常用命令
  • 图像分割 unet
  • codeigniter3中文手册
  • PHP:imagepsencodefont()的用法_GD库图像处理函数
  • 生产型企业出口外购货物可以退税吗
  • 自动驾驶数据集 mev
  • 应用加载慢
  • php公众号推送完整示例
  • 个人劳务所得年终汇算清缴
  • 红字发票抵扣联要装订到凭证里吗
  • 超市小票可以作为证据吗
  • java委托模式和代理模式
  • 招待客户发生的住宿费可以抵扣吗
  • 长期股权投资资本公积增加记哪个会计科目
  • odbc api
  • 企业怎样合理避税详述
  • 视同销售是怎么回事?
  • 银行汇票的会计处理过程分为什么阶段
  • 汇算清缴补缴税款会计分录
  • 工会经费计提比例是应发工资还是实发工资
  • 增值税农产品免税
  • 公司账户收入多少要扣税
  • 小规模购买税控盘分录怎么写
  • 企业在建工程项目
  • 有发票还要填写领款单吗
  • 暂估入库一直未取得发票需要调账吗
  • 根据银行回单做凭证
  • 发票作废才能验旧吗
  • 个人承担的社保算公司的费用吗
  • redhat rhca
  • ubuntuone
  • 如何用U盘安装新系统
  • Ubuntu 14.04 64位搭建ADT开发环境的方法
  • win7定时开关怎么定时
  • win10电脑开机蓝屏怎么进入安全模式
  • linux ssh默认端口
  • win8 embedded
  • 搭建android开发环境实验原理
  • 常用的linux命令大全
  • opengl导入obj能动起来吗
  • html淘宝搜索框代码
  • div+css布局是什么
  • js浏览器运行机制
  • js缩小图片尺寸
  • jQuery中使用animate自定义动画的方法
  • 民办学校需要交工会经费吗
  • 商铺缴纳契税需要复印件吗
  • 税务年报怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设