我编写的代码非常复杂 但我的问题是如何解析一些字符串化两个对象 在我的代码中大多数时间它不是问题,但有一段时间它字符串化两次。所以我无法追踪代码来找到我的问题 我的JSON对象是这样的:
""[{\"name\":\"trane\",\"price\":\"150000\",\"order\":\"\",\"sale\":\"\",\"printedPic\":\"\",\"remainingPic\":\"\",\"locationEncome\":\"\"}]""
答案 0 :(得分:4)
最好找出两次串联的位置和原因,但如果必须,可以解析两次。
JSON.parse(JSON.parse("JSON STRING HERE"))
修改强>
您可能正在对已经字符串化的对象进行字符串化处理,这可以帮助您找出问题所在。
将此功能添加到您的代码中,然后将JSON.stringify
来电替换为JSON.stringifyIfObject
。只是使用它作为调试手段,我不会把它投入生产。
JSON.stringifyIfObject = function stringifyIfObject(obj){
if(typeof obj == "object")
return JSON.stringify(obj);
else{
alert("found already stringified object")
return obj;
}
}
答案 1 :(得分:0)
这篇文章有点老了,但是我今天遇到了同样的问题,它是由第三方图书馆引起的。
在版本1.6.x中使用Javascript库Prototype.js两次应用JSON.stringify()(似乎该错误已在版本1.7中删除)
以下代码:
var test = ["banana"];
JSON.stringify(test);
将为您提供以下结果:
""[\"banana\"]""
代替(通常是预期的):
"["banana"]"
这是我的出处: https://github.com/krinkle/jquery-json/issues/35
如果您遇到这种情况,最好的选择是升级该库。