Javascript 即使json是正确的,json解析在java脚本中也不起作用?

Javascript 即使json是正确的,json解析在java脚本中也不起作用?,javascript,json,Javascript,Json,大多数在线解析器都成功解析了上述JSON 另外,我可以直接把它放在浏览器的js控制台中,我可以从控制台中读取 如果我在使用json.parse()时为变量赋值,且变量给出错误: var data={ "apple_scab": { "sym": "Dark velvet covering on leaves, Velvety olive-green to black spots on leaves", "cause": "Venturia inaequalis", "

大多数在线解析器都成功解析了上述JSON

另外,我可以直接把它放在浏览器的js控制台中,我可以从控制台中读取

如果我在使用json.parse()时为变量赋值,且变量给出错误:

var data={
  "apple_scab": {
    "sym": "Dark velvet covering on leaves, Velvety olive-green to black spots on leaves",
    "cause": "Venturia inaequalis",
    "nc_c": "Use resistant varieties: Prima, Priscilla, Sir Prize, Jonafree, Red free, Dayton, Pristine, Goldrush, Enterprise or Liberty.",
    "c_c": "Use fungicide such as Captan."
  }}
var obj=JSON.parse(数据);
*VM568:1未捕获的语法错误:JSON中位置1处的意外标记o
在JSON.parse()处
时间:1:6*

JSON.parse
接受一个字符串,该字符串被解析,然后返回一个满是解析数据的对象。但你正在传递一个对象<代码>数据
已经被解析,所以这里根本不需要
JSON.parse

由于javascript的一些奇怪的怪癖,在JSON中的位置1处出现了这个错误。基本上,它试图将对象强制为字符串,以便可以对其进行解析。对象被强制为字符串,就像
[object object]
一样。你真的在跑步

var obj = JSON.parse(data);

*VM568:1 Uncaught SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6*
这是无效的json,错误告诉您字符串的第一个字符无效


但在您的情况下,您可以简单地使用
数据
,而无需解析

JSON.parse('[object Object]')

从我收集的信息来看,您正在尝试解析一个已经是对象的对象

var data={
  "apple_scab": {
    "sym": "Dark velvet covering on leaves, Velvety olive-green to black spots on leaves",
    "cause": "Venturia inaequalis",
    "nc_c": "Use resistant varieties: Prima, Priscilla, Sir Prize, Jonafree, Red free, Dayton, Pristine, Goldrush, Enterprise or Liberty.",
    "c_c": "Use fungicide such as Captan."
  }
}

console.log(data.apple_scab.cause) //-> Venturia inaequalis
这将失败,因为
JSON.parse()
无法解析对象

var data={
  "apple_scab": {
    "sym": "Dark velvet covering on leaves, Velvety olive-green to black spots on leaves",
    "cause": "Venturia inaequalis",
    "nc_c": "Use resistant varieties: Prima, Priscilla, Sir Prize, Jonafree, Red free, Dayton, Pristine, Goldrush, Enterprise or Liberty.",
    "c_c": "Use fungicide such as Captan."
  }
}

console.log(data.apple_scab.cause) //-> Venturia inaequalis
为了成功,它必须是一个字符串

let someObject = { hello: "world" };
JSON.parse(someObject);

这将成功并解析该对象。

因为它是一个对象,所以您的JSON看起来已经解析。JSON是一个字符串<代码>数据
是一个对象。Parse需要一个字符串。QEDThat是JS,而不是JSON
大多数在线解析器都成功解析了上述json
这似乎有点可疑。“我试过了,它不起作用,请帮我解决”它已经是一个对象了。无法分析对象。。。。您正在执行:JSON.parse(“[object]”),因为object.toString返回“[object]”