更改JSON.parse功能

时间:2016-06-09 09:30:04

标签: javascript json

我尝试添加JSON.parse的默认参数,以便在使用JSON.stringify

后将时间格式转换为utc
function json_deserialize_helper(key, value) {    
    if (key === "TimeStamp") {
         value =new Date(value);
     }    return value; }

 JSON.prototype.parse = function(j,f){  f= f ||
 json_deserialize_helper;   return JSON.parse(j,f); }

 var obj = {"TimeStamp":"2016-06-09T10:37:52.000Z"} obj =
 JSON.stringify(obj); console.log(obj); obj = JSON.parse(obj);

1 个答案:

答案 0 :(得分:0)

From the specs

  

JSON对象是一个普通的对象,它包含两个函数,parse和stringify,用于解析和构造JSON文本。

这意味着JSON不是具有自己原型的构造函数。

要做你想要实现的目标,你必须覆盖JSON.parse

JSON.parse = function () { /* your logic */ }

但是,您最好只创建一个完全独立的函数来包装JSON.parse,而不是替换JSON.parse本身。通过替换JSON.parse,您可能会破坏使用它的任何库。