JS中json類型數據和string類型數據的相互轉換處理(官方文檔記錄)

(本文內容,從官網讀取,摘抄過來,僅爲查看方便之用,如需詳細信息,請☞官網查看)

JSON包含的方法

JSON.parse()

解析JSON字符串並返回對應的值,可以額外傳入一個轉換函數,用來將生成的值和其屬性, 在返回之前進行某些修改。

JSON.stringify()

返回與指定值對應的JSON字符串,可以通過額外的參數, 控制僅包含某些屬性, 或者以自定義方法來替換某些key對應的屬性值。

JSON.parse() 方法

不允許在末尾添加多餘的逗號

下面兩行代碼都會拋出錯誤:

JSON.parse('[1, 2, 3, 4, ]');
JSON.parse('{"foo" : 1, }');
// SyntaxError JSON.parse: unexpected character 
// at line 1 column 14 of the JSON data

省略末尾多餘的逗號解析 JSON 就是正確:

JSON.parse('[1, 2, 3, 4 ]');
JSON.parse('{"foo" : 1 }');

 

JSON 的屬性名必須使用雙引號

屬性名上不能使用單引號,例如: 'foo'。

JSON.parse("{'foo' : 1 }");
// SyntaxError: JSON.parse: expected property name or '}' 
// at line 1 column 2 of the JSON data

取而代之,寫成 "foo":

JSON.parse('{"foo" : 1 }');

前導 0 和小數點

數字不能用 0 開頭,比如01,並且你的小數點後面必須跟着至少一個數字。

JSON.parse('{"foo" : 01 }');
// SyntaxError: JSON.parse: expected ',' or '}' after property value 
// in object at line 1 column 2 of the JSON data

JSON.parse('{"foo" : 1. }'); 
// SyntaxError: JSON.parse: unterminated fractional number 
// at line 1 column 2 of the JSON data

正確的寫法應該是隻寫一個1,不書寫前面的0。在小數點的後面至少要跟上一個數字:

JSON.parse('{"foo" : 1 }');
JSON.parse('{"foo" : 1.0 }');

 JSON.stringify()方法 

JSON.stringify() 方法是將一個JavaScript值(對象或者數組)轉換爲一個 JSON字符串,如果指定了replacer是一個函數,則可以替換值,或者如果指定了replacer是一個數組,可選的僅包括指定的屬性。

語法

JSON.stringify(value[, replacer [, space]])

參數

value

將要序列化成 一個JSON 字符串的值。

replacer 可選

如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理;如果該參數是一個數組,則只有包含在這個數組中的屬性名纔會被序列化到最終的 JSON 字符串中;如果該參數爲null或者未提供,則對象所有的屬性都會被序列化;關於該參數更詳細的解釋和示例,請參考使用原生的 JSON 對象一文。

space 可選

指定縮進用的空白字符串,用於美化輸出(pretty-print);如果參數是個數字,它代表有多少的空格;上限爲10。該值若小於1,則意味着沒有空格;如果該參數爲字符串(字符串的前十個字母),該字符串將被作爲空格;如果該參數沒有提供(或者爲null)將沒有空格。

返回值 

一個表示給定值的JSON字符串。

具體內容詳見:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章