最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

json對(duì)象和formData相互轉(zhuǎn)換的方式詳解

 更新時(shí)間:2023年02月14日 09:10:15   作者:水星記_  
我們有兩種常見(jiàn)的傳參方式: JSON 對(duì)象格式和 formData 格式,但是一些場(chǎng)景是需要我們對(duì)這兩種數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換的,這篇文章主要介紹了json對(duì)象和formData相互轉(zhuǎn)換的方式詳解,需要的朋友可以參考下

前言

大家都知道,前端在和后臺(tái)進(jìn)行交互聯(lián)調(diào)時(shí),肯定避免不了要傳遞參數(shù),一般情況下,paramsget 請(qǐng)求中使用,而 post 請(qǐng)求下,我們有兩種常見(jiàn)的傳參方式: JSON 對(duì)象格式和 formData 格式,但是一些場(chǎng)景是需要我們對(duì)這兩種數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換的,例如表單提交,有些是 JSON 對(duì)象格式的數(shù)據(jù),有些是 FormData 格式的數(shù)據(jù),這個(gè)時(shí)候就需要我們對(duì)其進(jìn)行轉(zhuǎn)換。

常見(jiàn)的 POST 提交數(shù)據(jù)方式

1. application/x-www-form-urlencoded

表單格式提交數(shù)據(jù),通過(guò) form 標(biāo)簽的 action 屬性,如果不設(shè)置 enctype 屬性,那么最終就會(huì)以 application/x-www-form-urlencoded 方式提交數(shù)據(jù)。

2. multipart/form-data

這也是一個(gè)常見(jiàn)的 post 數(shù)據(jù)提交的方式,我們使用表單上傳文件時(shí),就要讓 formenctype 等于這個(gè)值,多用于文件上傳。

3. application/json

application/json 這個(gè) Content-Type 作為響應(yīng)頭大家肯定不陌生,客觀來(lái)說(shuō),現(xiàn)在越來(lái)越多的人把它作為請(qǐng)求頭,用來(lái)告訴服務(wù)端消息主體是序列化后的 json 字符串。由于 json 規(guī)范的流行,除了低版本 IE 之外的各大瀏覽器都原生支持 JSON.stringify,服務(wù)端語(yǔ)言也都有處理 json 的函數(shù),使用 json 不會(huì)遇上什么麻煩,并且 json 格式支持比鍵值對(duì)復(fù)雜的多的結(jié)構(gòu)化數(shù)據(jù)。

4. text/xml

相比于 json,xml 不能更好的適用于數(shù)據(jù)交換,它包含了太多的包裝,而且它跟大多數(shù)編程語(yǔ)言的數(shù)據(jù)模型不匹配,xml 是面向數(shù)據(jù)的,json 是面向?qū)ο蠛徒Y(jié)構(gòu)的。目前多用于 XML 存儲(chǔ)數(shù)據(jù),存儲(chǔ)配置文件等需要結(jié)構(gòu)化存儲(chǔ)的地方使用。

JSON 格式和 formData 格式的區(qū)別

JSON 請(qǐng)求頭:

在這里插入圖片描述

JSON 負(fù)荷:

在這里插入圖片描述

formData 請(qǐng)求頭:

在這里插入圖片描述

formData 負(fù)荷:

在這里插入圖片描述

通過(guò)上面的幾張圖我們就能大概明白了,前端傳的都是二進(jìn)制數(shù)據(jù),兩者的 content-type 是不同的,json 我們已經(jīng)序列化好了,而 formdata 還是需要進(jìn)行處理。

formdata 的兩種格式

  • multipart/form-data:既可以上傳文件等二進(jìn)制數(shù)據(jù),也可以上傳表單鍵值對(duì),只是最后會(huì)轉(zhuǎn)化為一條信息;
  • x-www-form-urlencoded:只能上傳鍵值對(duì),并且鍵值對(duì)都是間隔分開(kāi)的。

json 對(duì)象轉(zhuǎn) formData

逐個(gè)轉(zhuǎn)換

let obj = {
  id: "001",
  name: "小藍(lán)",
  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);

所有屬性值轉(zhuǎn)換

let obj = {
  id: "001",
  name: "小藍(lán)",
  age: "18",
  sex: "女",
};
const formData = new FormData();
Object.keys(obj).map((key) => {
  formData.append(key, obj[key]);
});
console.log(formData);

formData 對(duì)象轉(zhuǎn) json

var jsonObj = {};
formData.forEach((value, key) => (jsonObj[key] = value));

到此這篇關(guān)于json對(duì)象和formData相互轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)json對(duì)象和formData相互轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序中實(shí)現(xiàn)雙向綁定的實(shí)戰(zhàn)過(guò)程

    微信小程序中實(shí)現(xiàn)雙向綁定的實(shí)戰(zhàn)過(guò)程

    最近在小程序的開(kāi)發(fā)過(guò)程中,需要用到雙向綁定,遇到報(bào)錯(cuò)才知道微信本身是不支持對(duì)象雙向綁定的,折騰一番找到解決方案,下面這篇文章主要給大家介紹了關(guān)于微信小程序中實(shí)現(xiàn)雙向綁定的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 計(jì)算文本域剩佘長(zhǎng)度的js代碼

    計(jì)算文本域剩佘長(zhǎng)度的js代碼

    計(jì)算文本域剩佘長(zhǎng)度js,以前腳本之家也發(fā)過(guò),這段代碼也算是比較簡(jiǎn)單的一種實(shí)現(xiàn)方法。
    2010-10-10
  • 一文詳解e2e測(cè)試之cypress的使用

    一文詳解e2e測(cè)試之cypress的使用

    這篇文章主要介紹了e2e測(cè)試之cypress的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • js判斷輸入框不能為空格或null值的實(shí)現(xiàn)方法

    js判斷輸入框不能為空格或null值的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇js判斷輸入框不能為空格或null值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • javascript設(shè)計(jì)模式 – 組合模式原理與應(yīng)用實(shí)例分析

    javascript設(shè)計(jì)模式 – 組合模式原理與應(yīng)用實(shí)例分析

    這篇文章主要介紹了javascript設(shè)計(jì)模式 – 組合模式,結(jié)合實(shí)例形式分析了javascript組合模式相關(guān)概念、原理、應(yīng)用場(chǎng)景及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • JS/CSS實(shí)現(xiàn)字符串單詞首字母大寫功能

    JS/CSS實(shí)現(xiàn)字符串單詞首字母大寫功能

    這篇文章主要介紹了JS/CSS實(shí)現(xiàn)字符串單詞首字母大寫功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • prettify 代碼高亮著色器google出品

    prettify 代碼高亮著色器google出品

    prettify是Google提供的一款源代碼語(yǔ)法高亮著色器,它提供一種簡(jiǎn)單的形式來(lái)著色HTML頁(yè)面上的程序代碼,最值得亮點(diǎn)的地方是不需要指明代碼的語(yǔ)言類型,它會(huì)自動(dòng)進(jìn)行判斷。
    2010-12-12
  • 微信小程序?qū)崿F(xiàn)簡(jiǎn)單彈框效果

    微信小程序?qū)崿F(xiàn)簡(jiǎn)單彈框效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)單彈框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 微信小程序?qū)崿F(xiàn)手寫簽名的示例代碼

    微信小程序?qū)崿F(xiàn)手寫簽名的示例代碼

    這篇文章主要和大家分享一個(gè)微信小程序的示例代碼,可以實(shí)現(xiàn)手寫簽名的效果。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-02-02
  • 詳解微信小程序回到頂部的兩種方式

    詳解微信小程序回到頂部的兩種方式

    這篇文章主要介紹了詳解微信小程序回到頂部的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評(píng)論

仙游县| 明光市| 宝应县| 武邑县| 绵竹市| 时尚| 济宁市| 满洲里市| 阿图什市| 郧西县| 渑池县| 沙雅县| 民勤县| 阳东县| 德令哈市| 华安县| 沙河市| 巴马| 汾西县| 栾城县| 榕江县| 海门市| 隆化县| 平果县| 恩平市| 兴仁县| 滨海县| 尉犁县| 凯里市| 奈曼旗| 永兴县| 台湾省| 宣恩县| 辉南县| 新龙县| 屏东县| 象山县| 新津县| 石嘴山市| 泰宁县| 嘉祥县|