JSON.stringify()

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   使用   sp   java   

概述

JSON.stringify() 方法可以將任意的 JavaScript 值序列化成 JSON 字串。

文法
JSON.stringify(value[, replacer [, space]])
參數
value
將要序列化成 JSON 字串的值。
replacer 可選
如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理;如果該參數是一個數組,則只有包含在這個數組中的屬性名稱才會被序列化到最終的 JSON 字串中。關於該參數更詳細的解釋和樣本,請參考使用原生的 JSON 對象一文。
space 可選
指定縮排用的空白字串,用於美化輸出(pretty-print)。

 具體可以參考 MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

 

一、通常情況下,我們只使用如下代碼進行簡單的 JSON 字串化:

var JSONobj = {"name" : "value","arr" : [‘str1‘,‘str2‘]};console.log(JSON.stringify(JSONobj));//結果為{"name":"value","arr":["str1","str2"]} 

 

二、實際上,第二個參數也有很重要的用途,比如對對象內的key-value 依次進行處理後轉換為字串:

var JSONobj = {"name" : "value","name2":"value2","arr" : [‘str1‘,‘str2‘,{‘arrObj‘ : ‘arrObj‘}]};JSON.stringify(JSONobj,function(key,value){   console.log(key,value)});    //結果為:JSONobj對象(value值),key無值

 

三、當需要展示的 json 串對方便使用,增加可讀性時,可以使用第三個參數:

var JSONobj = {"name" : "value","arr" : [‘str1‘,‘str2‘,{‘arrObj‘ : ‘arrObj‘}]};JSON.stringify(JSONobj, null, ‘\t‘);/* "{    "name": "value",    "arr": [        "str1",        "str2",        {            "arrObj": "arrObj"        }    ]}" */

實際上以上結果經過了兩次處理:

1. 為每一個 ‘{’、‘}’、value 後的‘,’ 末尾添加一個\n

2. 為每一個一級 key 前面添加一個\t (tab定位字元,即本例中第三個參數值),二級 key 前面加兩個\t,以此類推。

為了更清晰的驗證以上兩點,進行如下測試:

var JSONobj = {"name" : "value","arr" : [‘str1‘,‘str2‘,{‘arrObj‘ : ‘arrObj‘}]};JSON.stringify(JSONobj, null, ‘\t‘).replace(/\n/g,‘|--N--|‘).replace(/\t/g,‘|--T--|‘);//結果為"{|--N--||--T--|"name": "value",|--N--||--T--|"arr": [|--N--||--T--||--T--|"str1",|--N--||--T--||--T--|"str2",|--N--||--T--||--T--|{|--N--||--T--||--T--||--T--|"arrObj": "arrObj"|--N--||--T--||--T--|}|--N--||--T--|]|--N--|}"

 

JSON.stringify()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.