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

为什么这个Javascript JSON字符串无效?,javascript,json,Javascript,Json,这是有问题的字符串: var string = "{\"CMD\":\"<a href=\"someurl.com\">link</a>\"}"; var string=“{\'CMD\\:\”}”; 当我取消对引号的转义(url除外)时,它似乎是有效的: { "CMD": "<a href=\"someurl.com\">link</a>" } { “CMD”:” } 但它破坏了我的Javascript程序 编辑:也尝试了双重转义

这是有问题的字符串:

var string = "{\"CMD\":\"<a href=\"someurl.com\">link</a>\"}";
var string=“{\'CMD\\:\”}”;
当我取消对引号的转义(url除外)时,它似乎是有效的:

{
    "CMD": "<a href=\"someurl.com\">link</a>"
}
{
“CMD”:”
}
但它破坏了我的Javascript程序

编辑:也尝试了双重转义。第一个双引号似乎被漏掉了,但第二个却没有:

{
        "CMD": "<a href=\\"someurl.com\\">link</a>"
}
{
“CMD”:”
}
违规代码:

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

href属性有额外的
。您需要双重转义它:

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

href属性具有附加的
。您需要加倍逃逸它:

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

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

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

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

{
    "CMD": "<a href='someurl.com'>link</a>"
}
像这样改变:

{“CMD”:“}
更改如下:



{“CMD”:“”}
将字符串{“CMD”:“”}内的双引号转换为单引号\“someurl.com\”不也是不可替换的吗?所以你需要双倍逃离他们?也许吧?试试:
var string=“{\“CMD\”:\“\”}”为什么这是一个问题?你不应该手工创建JSON字符串,你应该使用一个库函数,它几乎肯定会正确。只需使用
JSON.stringify
JSON.parse
。将字符串{“CMD”:“}中的双引号转换为单引号。“someurl.com”也会被取消吗?所以你需要双倍逃离他们?也许吧?试试:
var string=“{\“CMD\”:\“\”}”为什么这是一个问题?你不应该手工创建JSON字符串,你应该为它使用一个库函数,它几乎肯定会正确。只需使用
JSON.stringify
JSON.parse
。问题是关于字符串,而不是对象。“
相当于
在javascript中”而不是真的(好吧,差不多),这在上面是不相关的。与上面相关的是
。这是唯一有效的方法-双转义和三转义双引号不起作用。@crm:这也会起作用:
“{\“CMD\”:\“\”}”
(),但上面要简单得多。问题是关于字符串,而不是对象。”
相当于javascript中的
,虽然这是真的(好吧,几乎是真的),但在上面的描述中它是不相关的。与上述内容相关的是,
。这是唯一有效的方法-双转义和三转义双引号不起作用。@crm:这也会起作用:
“{\“CMD\”:\“\”}”
(),但上面的方法要简单得多。这和双转义对我来说在Javascript中都不起作用。好吧,发布你的代码<代码>JSON.parse(“{\'CMD\\:\”}”)对我有用。
webSocket.send(“{\'CMD\':\“}”)在那之后,您如何处理字符串<代码>JSON.parse将起作用,发送它也应该起作用,因为它只是一个字符串。它被发送到Java服务器,在那里被解析为JSONObject:
JSONObject JSON=new JSONObject(stringJson)这个nor双转义在Javascript中对我有效。好吧,发布你的代码<代码>JSON.parse(“{\'CMD\\:\”}”)对我有用。
webSocket.send(“{\'CMD\':\“}”)在那之后,您如何处理字符串<代码>JSON.parse将起作用,发送它也应该起作用,因为它只是一个字符串。它被发送到Java服务器,在那里被解析为JSONObject:
JSONObject JSON=new JSONObject(stringJson)你能更具描述性吗?你能更具描述性吗?