淺談JSON中stringify 函數、toJosn函數和parse函數_json
JSON.stringify 函數 (JavaScript)
文法:JSON.stringify(value [, replacer] [, space])
將 JavaScript 值轉換為 JavaScript 物件表示法 (Json) 字串。
value
必需。 要轉換的 JavaScript 值(通常是物件或陣列)。
replacer
可選。 用於轉換結果的函數或陣列。
如果 replacer 為函數,則 JSON.stringify 將呼叫該函數,並傳入每個成員的鍵和值。 使用傳回值而不是原始值。 如果此函數傳回 undefined,則排除成員。 根物件的鍵是一個空字串:""。
如果 replacer 是數組,則僅轉換該數組中具有鍵值的成員。 成員的轉換順序與鍵在陣列中的順序一樣。 當 value 參數也為數組時,將忽略 replacer 數組。
space
可選。 在返回值 JSON 文字中新增縮排、空格和換行符以使其更易於讀取。
如果省略 space,則將產生傳回值文本,而沒有任何額外空格。
如果 space 是數字,則傳回值文字在每個層級縮排指定數目的空格。 如果 space 大於 10,則文字縮排 10 個空格。
如果 space 是非空字串(例如「 」),則傳回值文字在每個層級中縮排字串中的字元。
如果 space 是長度大於 10 個字元的字串,則使用前 10 個字元。
如果 value 有 toJSON 方法,則 JSON.stringify 函數將使用該方法的傳回值。 如果 toJSON 方法的回傳值為 undefined,則不轉換成員。 這使物件能夠確定自己的 JSON 表示形式。
將不會轉換不具有 JSON 表示形式的值,例如 undefined。 在物件中,將丟棄這些值。 在陣列中,會將這些值替換為 null。
執行順序
在序列化過程中,如果 value 參數對應有 toJSON 方法,則 JSON.stringify 將首先呼叫 toJSON 方法。 如果該方法不存在,則使用原始值。 接下來,如果提供 replacer 參數,則該值(原始值或 toJSON 傳回值)將替換為 replacer 參數的傳回值。 最後,根據可選 space 參數向該值添加空格以產生最終的 JSON 文字。
此範例使用 JSON.stringify 將 contact 物件轉換為 JSON 文字。 定義 memberfilter 陣列以便只轉換surname 和 phone 成員。 省略 firstname 成員。
var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
var memberfilter = new Array();
memberfilter[0] = "surname";
memberfilter[1] = "phone";
var jsonText = JSON.stringify(contact, memberfilter, "t");
document.write(jsonText);
// Output:
// { "surname": "Aaberg", "phone": [ "555-0100", "555-0120" ] }
toJSON 方法 (Date) (JavaScript)
語法:objectname.toJSON()
objectname
必需。 需要進行 JSON 序列化的物件。
toJSON 方法是 Date JavaScript 物件內建的成員。 它傳回 UTC 時區的 ISO 格式日期字串(由後綴 Z 表示)。
以下範例使用 toJSON 方法將大寫的字串成員值序列化。 在呼叫 JSON.stringify 時呼叫 toJSON 方法。
JavaScript
var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
contact.toJSON = function(key)
{
var replacement = new Object();
for (var val in this)
{
if (typeof (this[val]) === 'string')
replacement[val] = this[val].toUpperCase();
else
replacement[val] = this[val]
}
return replacement;
};
var jsonText = JSON.stringify(contact);
/* The value of jsonText is:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/
JSON.parse 函數 (JavaScript)
將 JavaScript 物件表示法 (JSON) 字串轉換為物件
語法:JSON.parse(text [, reviver])
text
必需。 一個有效的 JSON 字串。
reviver
可選。 一個轉換結果的函數。 將為物件的每個成員呼叫此函數。 如果成員包含巢狀對象,則先於父對象轉換嵌套對象。 對於每個成員,會發生以下情況:
如果 reviver 傳回有效值,則成員值將會被轉換後的值取代。
如果 reviver 傳回它接收的相同值,則不修改成員值。
如果 reviver 傳回 null 或 undefined,則刪除成員。
以下範例使用 JSON.parse 將 JSON 字串轉換成物件。
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname ", " contact.firstname);
// Output: Aaberg, Jesper
以下範例示範如何使用 JSON.stringify 將陣列轉換成 JSON 字串,然後使用 JSON.parse 將該字串重新轉換成陣列。
var arr = ["a", "b", "c"];
var str = JSON.stringify(arr);
document.write(str);
document.write ("
");
var newArr = JSON.parse(str);
while (newArr.length > 0) {
document.write(newArr.pop() "
");
}
// Output:
// ["a","b","c"]
// c
// b
// a

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

golangWebSocket與JSON的結合:實現資料傳輸和解析在現代的Web開發中,即時資料傳輸變得越來越重要。 WebSocket是一種用於實現雙向通訊的協議,與傳統的HTTP請求-回應模型不同,WebSocket允許伺服器向客戶端主動推送資料。而JSON(JavaScriptObjectNotation)是一種用於資料交換的輕量級格式,它簡潔易讀

Gson@Expose註解可用於標記欄位是否公開(包含或不包含)以進行序列化或反序列化。 @Expose註解可以採用兩個參數,每個參數都是一個布林值,可以採用值true或false。為了讓GSON對@Expose註解做出反應,我們必須使用GsonBuilder類別建立一個Gson實例,並且需要呼叫excludeFieldsWithoutExposeAnnotation()方法,它將Gson配置為排除所有沒有Expose註解的欄位進行序列化或反序列化。語法publicGsonBuilderexclud

MySQL5.7和MySQL8.0是兩個不同的MySQL資料庫版本,它們之間有以下一些主要差異:效能改進:MySQL8.0相對於MySQL5.7有一些效能改進。其中包括更好的查詢優化器、更有效率的查詢執行計劃產生、更好的索引演算法和平行查詢等。這些改進可以提高查詢效能和整體系統效能。 JSON支援:MySQL8.0引入了對JSON資料類型的原生支持,包括JSON資料的儲存、查詢和索引。這使得在MySQL中處理和操作JSON資料變得更加方便和有效率。事務特性:MySQL8.0引進了一些新的事務特性,如原子

PHP數組轉JSON的效能最佳化方法包括:使用JSON擴充和json_encode()函數;新增JSON_UNESCAPED_UNICODE選項以避免字元轉義;使用緩衝區提高循環編碼效能;快取JSON編碼結果;考慮使用第三方JSON編碼庫。

使用golang中的json.MarshalIndent函數將結構體轉換為格式化的JSON字串在使用Golang編寫程式時,我們經常需要將結構體轉換為JSON字串,在這個過程中,json.MarshalIndent函數可以幫助我們實現格式化的輸出。下面我們將詳細介紹如何使用這個函數,並提供具體的程式碼範例。首先,讓我們建立一個包含一些資料的結構體。以下是示

C#開發中如何處理XML和JSON資料格式,需要具體程式碼範例在現代軟體開發中,XML和JSON是廣泛應用的兩種資料格式。 XML(可擴展標記語言)是一種用於儲存和傳輸資料的標記語言,而JSON(JavaScript物件表示)是一種輕量級的資料交換格式。在C#開發中,我們經常需要處理和操作XML和JSON數據,本文將重點放在如何使用C#處理這兩種數據格式,並附上

快速入門:Pandas讀取JSON檔案的方法,需要具體程式碼範例引言:在資料分析和資料科學領域,Pandas是一個重要的Python庫之一。它提供了豐富的功能和靈活的資料結構,能夠方便地對各種資料進行處理和分析。在實際應用中,我們經常會遇到需要讀取JSON檔案的情況。本文將介紹如何使用Pandas來讀取JSON文件,並附上特定的程式碼範例。一、Pandas的安裝

Jackson庫中的註解可控制JSON序列化和反序列化:序列化:@JsonIgnore:忽略屬性@JsonProperty:指定名稱@JsonGetter:使用獲取方法@JsonSetter:使用設定方法反序列化:@JsonIgnoreProperties:忽略屬性@ JsonProperty:指定名稱@JsonCreator:使用建構子@JsonDeserialize:自訂邏輯
