JSON對象中的值不能直接使用:
- 日期
- 函數
- undefined
解析日期
JSON 中不允許日期對象。如果您需要包含日期,請寫為字元串。可以将其轉換回日期對象:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
或者您可以已使用 JSON.parse() 函數的第二個參數,被稱為 reviver。這個 reviver 參數是函數,在傳回值之前,它會檢查每個屬性。
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text, function (key, value) {
if (key == "birth") {
return new Date(value);
} else {
return value;
}});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
解析函數
var text = '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();