天天看點

JSON資料和javascript對象對比

JSON對象中的值不能直接使用:

  1. 日期
  2. 函數
  3. 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();      

繼續閱讀