Jquery JSON.parse错误

时间:2014-03-23 19:23:32

标签: jquery

我需要解析一个php收到的字符串,就像对象文字一样。我正在尝试使用json.parse,但我收到此错误“JSON解析错误:预期']'”。 我不明白为什么,你能看一下这段代码吗?

由于

请注意,此数据变量是php返回仅用于测试的复制/粘贴

var data = "{\"29-05-yyyy\":[\"<li><div class=\"vazio\"></div><div class=\"linha\"><span>Parabéns!</span></div><div class=\"vazio\"></div></li>\"]}";
alert(JSON.parse(data));

3 个答案:

答案 0 :(得分:1)

{
    "29-05-yyyy": [
        "<li><div class=\"vazio\"></div><divclass=\"linha\"><span>Parabéns!</span></div><div    class=\"vazio\"></div></li>"
    ]
}

您必须在内部双引号之前放置所有反斜杠,而不是在双引号或双引号之前。
在此处验证您的json:http://jsonlint.com/

答案 1 :(得分:0)

问题是html属性的引号未正确转义。

你的JSON基本上是这样的:

{"29-05-yyyy":["<li><div class="vazio"></div>...
                               ^ this ends the string

你需要加倍地转义html属性的引号,如下所示:

"{\"29-05-yyyy\":[\"<li><div class=\\\"vazio\\\"></div><div class=\\\"linha\\\"><span>Parabéns!</span></div><div class=\\\"vazio\\\"></div></li>\"]}"

或者,您可以对html属性使用单引号,如下所示:

"{\"29-05-yyyy\":[\"<li><div class='vazio'></div><div class='linha'><span>Parabéns!</span></div><div class='vazio'></div></li>\"]}"

答案 2 :(得分:0)

var data = '{"29-05-yyyy": "<li><divclass=\'vazio\'></div><div class=\'linha\'><span>Parabéns!</span></div><divclass=\'vazio\'></div></li>"}';