【发布时间】:2014-05-27 18:35:33
【问题描述】:
我尝试将 JS 对象转换为 JSON。
JSON.stringify({a:1, toJSON: function(){}})
本机 JSON 字符串化未按预期工作。 JSON stringify 在内部执行 JS 对象中的 toJSON 函数。我已经覆盖了本机代码,如下所示,
// Adding try catch for non JSON support browsers.
try{
_jsonStringify = JSON.stringify;
JSON.stringify = function(object){
var fnCopy = object.toJSON;
object.toJSON = undefined;
var result = _jsonStringify(object);
object.toJSON = fnCopy;
return result;
};
}catch(e){}
它工作正常。还有其他更好的方法吗?本机代码中是否有任何特定原因在输入对象中执行 toJSON 函数?
【问题讨论】:
-
对于不支持
JSON.stringify的浏览器,您应该使用json2.js -
我的问题仍然悬而未决('在本机代码中执行输入对象中的 toJSON 函数是否有任何特定原因?`)。如果有人知道原因,请更新此线程。
-
这样你就可以自定义序列化了。我已经用一个例子为你更新了我的答案。
标签: javascript json browser javascript-engine