天天看點

前端關于JSON的一些基礎知識

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的資料交換語言。

JSON建構于兩種結構:

“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被了解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵清單(keyed list),或者關聯數組 (associative array)。

值的有序清單(An ordered list of values)。在大部分語言中,它被了解為數組(array)。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

JSON.stringify 函數 (JavaScript)

将 JavaScript 值轉換為 JavaScript 對象表示法 (Json) 字元串。傳回值:一個包含 JSON 文本的字元串。

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

value

必需。 要轉換的 JavaScript 值(通常為對象或數組)。

replacer

可選。 用于轉換結果的函數或數組。

如果 replacer 為函數,則 JSON.stringify 将調用該函數,并傳入每個成員的鍵和值。 使用傳回值而不是原始值。 如果此函數傳回 undefined,則排除成員。 根對象的鍵是一個空字元串:""。

如果 replacer 是一個數組,則僅轉換該數組中具有鍵值的成員。 成員的轉換順序與鍵在數組中的順序一樣。 當 value 參數也為數組時,将忽略 replacer 數組。

space

可選。 向傳回值 JSON 文本添加縮進、空格和換行符以使其更易于讀取。

如果省略 space,則将生成傳回值文本,而沒有任何額外空格。

如果 space 是一個數字,則傳回值文本在每個級别縮進指定數目的空格。 如果 space 大于 10,則文本縮進 10 個空格。

如果 space 是一個非空字元串(例如“\t”),則傳回值文本在每個級别中縮進字元串中的字元。

如果 space 是長度大于 10 個字元的字元串,則使用前 10 個字元。

JSON.parse 函數 (JavaScript)

将 JavaScript 對象表示法 (JSON) 字元串轉換為對象。傳回值:一個對象或數組。

JSON.parse(text [, reviver])

參數

text

必需。 一個有效的 JSON 字元串。

reviver

可選。 一個轉換結果的函數。 将為對象的每個成員調用此函數。 如果成員包含嵌套對象,則先于父對象轉換嵌套對象。 對于每個成員,會發生以下情況:

如果 reviver 傳回一個有效值,則成員值将替換為轉換後的值。

如果 reviver 傳回它接收的相同值,則不修改成員值。

如果 reviver 傳回 null 或 undefined,則删除成員。

轉載于:https://www.cnblogs.com/zhengyao/p/4680837.html

繼續閱讀