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

  • 收入及增值税会计准则
  • 增值税怎么记
  • 支付电费未开具发票
  • 股权收购收购方支付的期间损益计入
  • 申请纳税申报怎么申报
  • 什么情况下核定征收转为查账征收
  • 转出未交增值税年末怎么转平
  • 非盈利组织是两套账吗?
  • 稳岗补贴给谁
  • 小型微利企业认定标准2023年
  • 购买非专利技术发生的手续费计入什么科目
  • 分类账和明细账平行登记规则
  • 流动资产短期借款
  • 公司注销银行公户怎么注销
  • 凭证单据的整理
  • 集团子公司之间调拨固定资产
  • 住宿费发票开错了可以重新开吗
  • 增值税扣税凭证抵减销项税额
  • 房地产企业开发资质等级
  • 所得税新规定
  • 向境外支付违约金要代扣税吗
  • 出租车车票能进高铁站吗
  • 帮客户采购会计分录
  • 委托个人加工应税消费品纳税地点
  • 负债判断
  • 支付征地补偿款怎么开具增值税发票
  • windows中的网络协议的配置原理
  • 穿越火线下载安装
  • 保险赔款确认函
  • 政府发放奖励金如何入账
  • 境外付款
  • 红宝石地址
  • 公允价值变动损益在利润表哪里
  • 预缴季度企业所得税分录
  • 高新技术企业取消资格怎么处罚
  • 命令行find
  • 税法折旧和会计折扣会计分录
  • 开发产品的成本
  • 怎么连接php
  • 总公司签合同开票分公司做业务分公司如何确认收入?
  • 项目差旅费能计入项目费用吗
  • 个体户取现金的几种方法
  • 日记总账的适用范围
  • 发放职工薪酬计入什么科目
  • 什么叫房屋租购同权
  • 待处理财产损益是什么意思
  • 广告牌制作加盟厂家
  • 购入需安装设备的会计分录
  • 机场员工家属机票
  • 购入固定资产会计处理
  • 未分配利润为负代表什么
  • 应付账款周转次数计算
  • 预付在建工程款的会计分录
  • 加油预付卡发票新规定文件
  • 发票验旧就是作废么?
  • 哪些合同不受法律保护
  • 工会需要独立建账吗
  • 不良债权处置折扣率
  • 工资扣水电费怎么做账
  • 定期存款到期转存利息也转存吗
  • 注册公司没交社保
  • bios各项参数的意义
  • windows7怎么说
  • WIN7系统如何禁止特定软件在线升级
  • WIN7系统怎么安装 注音输入法
  • 微软刷机怎么刷
  • win8开机启动项
  • win10系统应用更新
  • opengl超级宝典pdf
  • jqueryon事件
  • js str.match
  • jquery.ztree中文api
  • 基于springboot的毕设
  • python的for函数
  • 河南工商年检网上申报
  • 深圳营业执照办理咨询电话
  • 车船税每年多少钱
  • 上海如何用电子医保卡
  • 上缴财政总额是什么意思
  • 法人注册怎么注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设