我可以在执行此操作时使用$ .parseJSON():
var myString = '{ "Header": "<p>some content</p>"}';
var modelJsonObject = $.parseJSON(myString);
但是当"Header"
价值保持不变时src=""
,id=""
等等。如下所示:
var myString = '{ "Header": "<p><img src=\"http://placehold.it/50x50\" style=\"line-height: 1.3; width: 50px;\"><br></p>"}';
然后我在控制台中收到一个SyntaxError:意外令牌
该怎么办?
由于JSON字符串开始,以引号(结束"
),任何此类引号内的字符串必须转义,像这样:\"
这样一个只包含引用的JSON字符串会"\""
。
但是,这里有JavaScript的语法。用'\"'
JS编写的字符串将产生字符串"
。(尝试console.log('\"')
。)由于反斜杠在JS中具有特殊含义,因此必须将其转义。
上面的总和是一个仅包含用JS编写的引号的JSON字符串为:
'"\\""'
总之,您的字符串必须这样写:
var myString = '{ "Header": "<p><img src=\\"http://placehold.it/50x50\\" style=\\"line-height: 1.3; width: 50px;\\"><br></p>"}';
// 1 2 3
请注意,在JS中使用单引号可以使我们不必逃脱JS的双引号,但是JSON语法仍然必须正确。如果我们在字符串上使用双引号,那么我们将得到一个看起来很有趣的东西:
"{ \"Header\": \"<p><img src=\\\"http://placehold.it/50x50\\\" style=\\\"line-height: 1.3; width: 50px;\\\"><br></p>\"}";
哪里\\\"
有一个JS逸出的反斜杠(\\
),然后是一个JS逸出的引号(\"
),从而生成了一个JSON逸出的引号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句