解析json对象的字符串化两次

时间:2015-07-27 20:38:57

标签: javascript jquery json angularjs

我编写的代码非常复杂 但我的问题是如何解析一些字符串化两个对象 在我的代码中大多数时间它不是问题,但有一段时间它字符串化两次。所以我无法追踪代码来找到我的问题 我的JSON对象是这样的:

""[{\"name\":\"trane\",\"price\":\"150000\",\"order\":\"\",\"sale\":\"\",\"printedPic\":\"\",\"remainingPic\":\"\",\"locationEncome\":\"\"}]""

2 个答案:

答案 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

如果您遇到这种情况,最好的选择是升级该库。