色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

can't stringify json!

方一強2年前9瀏覽0評論

今天我在使用JSON的時候遇到了一個問題,那就是can't stringify json!

var obj = {
name: 'Alice',
age: 20
};
JSON.stringify(obj);

本來這段代碼應該是輸出一個對象的JSON字符串,但是卻報錯了。在經過查找資料后,我發現了兩個原因造成這個問題。

第一個,有些類型無法被JSON.stringify()處理。例如,如果對象中有一個屬性的值是函數、NaN或Infinity,那么它們會自動被轉換為null。

var obj = {
name: 'Alice',
age: 20,
sayHello: function() {
console.log('Hello!');
},
height: NaN,
weight: Infinity
};
JSON.stringify(obj);
// {"name":"Alice","age":20,"height":null,"weight":null}

第二個原因是對象中存在循環引用。如果一個對象被自己的一個屬性引用,那么它是循環引用了。如下:

var obj = {
name: 'Alice',
age: 20
};
obj.self = obj;
JSON.stringify(obj); //Uncaught TypeError: Converting circular structure to JSON

當對象存在循環引用時,JSON.stringify()無法處理。

因此,當我們遇到can't stringify json!這個問題時,我們需要檢查一下對象中的屬性是否包含函數、NaN、Infinity,以及是否存在循環引用。對于遇到的這些情況,我們可以手動進行特殊處理。