为什么这个字符串解析为JSON?

时间:2012-06-18 10:41:57

标签: javascript json parsing xmlhttprequest

有问题的字符串:

'{"images":{"0":"<div style=\\"background:red;width:250px;height:250px;display:block;position:absolute;\\"></div>"}}'

我尝试过单引号和双引号的各种组合。如果你把这个字符串放入Chrome的javascript控制台,进入JSON.parse(),它会解析得很好。

问题是,该字符串是从服务器发送给我的,我是通过.xhr()请求得到的。一旦添加了该步骤,无论单引号和双引号的排列如何,我都会遇到如下错误:

  

意外令牌'

如何请求像这样的字符串和JSON.parse它到对象?

3 个答案:

答案 0 :(得分:2)

应该是

var jsonstr = '{"images":{"0":"<div style=\"background:red;width:250px;height:250px;display:block;position:absolute;\"></div>"}}'

您使用双\\代替\

有很好的在线解析器可以帮助您调试。例如。 http://json.parser.online.fr/

答案 1 :(得分:2)

如果引用是字符串的一部分,那么它不是json。删除开始和结束报价。

并且没有理由双重避开双引号。

答案 2 :(得分:0)

你可以简单地选择,而不是使用\“ - 双引号而是使用单引号。我希望你能在html上渲染这个div,所以即使这样也没关系

{
    "images": {
        "0": "<div style='background:red;width:250px;height:250px;display:block;position:absolute;'></div>"
    }
}