Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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中的JSON意外标记B_Javascript_Json - Fatal编程技术网

Javascript中的JSON意外标记B

Javascript中的JSON意外标记B,javascript,json,Javascript,Json,我正在用JSON解析以下字符串 当我运行它时,chrome抛出以下错误意外的令牌B 我想不出来。因为字符串是由PHP json_encode创建的,所以json应该没有问题 我通过JSONLint运行了它,没有错误,所以JSON很好 那么错误是什么呢?JSON.parse()的参数应该是字符串 因此,JSON.parse([“hello”,“world”])是错误的 它应该是JSON.parse(“[\'hello\',\'world\']”) 我更新了JSFIDLE。请看一看对于其他回答此问

我正在用JSON解析以下字符串

当我运行它时,chrome抛出以下错误
意外的令牌B

我想不出来。因为字符串是由PHP json_encode创建的,所以json应该没有问题

我通过JSONLint运行了它,没有错误,所以JSON很好


那么错误是什么呢?

JSON.parse()的参数应该是字符串

因此,
JSON.parse([“hello”,“world”])
是错误的

它应该是
JSON.parse(“[\'hello\',\'world\']”)


我更新了JSFIDLE。请看一看

对于其他回答此问题的人,如果ajax请求返回“坏请求”(错误400),并且json解析器需要json,则会发生此错误。例如:

const fetchSomething = url =>
    fetch(url).then(data => data.json());

这根本不是有效的JSON,看起来更像数组中的HTML?这毫无意义,它是由PHP JSON encode创建的。?那么它应该是有效的JSON,我将我的语句更改为“数据不是真正适合JSON的”。它是HTML,为什么不以HTML字符串的形式发送呢,因为在发送之前将一个大的HTML字符串转换成JSON没有任何好处。这就是我选择JSON的原因。但是PHP在JSON解析所有字符串时似乎存在这个问题。没有意义。它是有效的json,如果您可以解释为什么PHP不会以正确的方式将其json,那么请尝试此验证程序。[“hello”,“world”]是有效的json。但是,如果要将其传递给JSON.parse(),则应将其字符串化。如果您将[“hello”,“world”]作为字符串,则它将是“[\“hello\”,\“world\”]”。或者你可以做“[“你好”,“世界”]”。这有意义吗?