为什么这个Javascript JSON字符串无效?

时间:2015-07-31 11:55:44

标签: javascript json

这是有问题的字符串:

var string = "{\"CMD\":\"<a href=\"someurl.com\">link</a>\"}";

当我取消引号(网址除外)和validate时,它似乎有效:

{
    "CMD": "<a href=\"someurl.com\">link</a>"
}

但它破坏了我的Javascript程序。

编辑:还尝试过双重转义。第一个双引号似乎逃脱了,但不是第二个:

{
        "CMD": "<a href=\\"someurl.com\\">link</a>"
}

违规代码:

webSocket.send("{\"CMD\":\"<a href=\\\"link.com\\\">link</a>\"}");

3 个答案:

答案 0 :(得分:4)

为什么不使用单个',如下所示

{
    "CMD": "<a href='someurl.com'>link</a>"
}

'相当于引用HTML属性值的"。这样JSONLint就可以验证它。

这两个HTML相同/相同。

<a href='someurl.com'>link</a>

<a href="someurl.com">link</a>

答案 1 :(得分:0)

href属性有额外的"。你需要双重逃避它:

"{\"CMD\":\"<a href=\\\"someurl.com\\\">link</a>\"}"

答案 2 :(得分:0)

像这样改变:

&#13;
&#13;
{ "CMD": "<a href=\"someurl.com\">link</a>" }
&#13;
&#13;
&#13;