Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';当字符串包含src="&引用;或id=”或&引用;属性_Javascript_Jquery_Json - Fatal编程技术网

Javascript Can';当字符串包含src="&引用;或id=”或&引用;属性

Javascript Can';当字符串包含src="&引用;或id=”或&引用;属性,javascript,jquery,json,Javascript,Jquery,Json,执行此操作时,我可以使用$.parseJSON() var myString = '{ "Header": "<p>some content</p>"}'; var modelJsonObject = $.parseJSON(myString); 然后我在控制台中得到一个SyntaxError:意外的令牌 怎么办?由于JSON字符串以引号(“)开始和结束,因此字符串中的任何此类引号都必须转义,如下所示:\”因此仅由引号组成的JSON字符串将是“\” 但是还有JavaSc

执行此操作时,我可以使用$.parseJSON()

var myString = '{ "Header": "<p>some content</p>"}';
var modelJsonObject = $.parseJSON(myString);
然后我在控制台中得到一个SyntaxError:意外的令牌


怎么办?

由于JSON字符串以引号(
)开始和结束,因此字符串中的任何此类引号都必须转义,如下所示:
\”
因此仅由引号组成的JSON字符串将是
“\”

但是还有JavaScript的语法。在JS中写为
“\”
的字符串会导致字符串
(请尝试
console.log(“\”)
),因为反斜杠在JS中有特殊意义,所以必须对其进行转义

综上所述,一个JSON字符串只包含一个用JS编写的引号,它是:

'"\\""'
总之,您的字符串必须这样写:

var myString = '{ "Header": "<p><img src=\\"http://placehold.it/50x50\\" style=\\"line-height: 1.3; width: 50px;\\"><br></p>"}';
//             1            2              3
var myString='{“Header”:“

”}”; // 1 2 3
  • 是JavaScript字符串的开头
  • 是JSON字符串的开头,在JS字符串中
  • 是JSON字符串中的引号

  • 请注意,在JS中使用单引号可以避免对JS使用双引号,但JSON语法仍然必须正确。如果我们对字符串使用双引号,那么我们会得到一个非常有趣的结果:

    "{ \"Header\": \"<p><img src=\\\"http://placehold.it/50x50\\\" style=\\\"line-height: 1.3; width: 50px;\\\"><br></p>\"}";
    
    “{\”Header\”:\“

    \”}”;

    其中,
    \\\”
    是一个JS转义反斜杠(
    \\
    ),后跟一个JS转义引号(
    \“
    ),导致一个JSON转义引号。

    您所说的works示例将抛出一个语法错误。请给我们一个真实的例子。这可能与不正确转义的引号有关。
    "{ \"Header\": \"<p><img src=\\\"http://placehold.it/50x50\\\" style=\\\"line-height: 1.3; width: 50px;\\\"><br></p>\"}";