2

有问题的字符串:

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

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

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

意外的标记 '

如何请求这样的字符串并将 JSON.parse 解析为对象?

4

3 回答 3

2

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

并且没有理由双重转义双引号。

于 2012-06-18T11:02:19.330 回答
2

它应该是

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

您使用 double\\而不是\

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

于 2012-06-18T10:44:39.713 回答
0

您可以简单地选择,不使用 \" - 双引号并改用单引号。我希望您将在 html 上呈现此 div,所以即使这样也可以

{
    "images": {
        "0": "<div style='background:red;width:250px;height:250px;display:block;position:absolute;'></div>"
    }
}
于 2012-06-18T10:49:22.313 回答