JSON.parse:在对象中的属性值之后预期','或'}'

bla*_*zan 2 javascript ajax json

当我通过AJAX加载我的human.json文件时,我不断收到此错误消息.

整个错误消息读取

JSON.parse: expected ',' or '}' after property value 
in object at line 2 column 22 of the JSON data. 
Run Code Online (Sandbox Code Playgroud)

我在网上寻找它,并且有人有类似的错误消息,但是,他们没有通过AJAX调用.

除此之外,它们不是在对象内的对象中嵌套数组.我认为这就是我收到此错误消息的原因.你是不是被允许将这么多属性嵌套在一起?

这是我的AJAX代码:

var request = new XMLHttpRequest();

request.open('GET','human.json');

request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {                     
        var obj = JSON.parse(request.responseText);
        console.log(obj);
    }
}

request.send();
Run Code Online (Sandbox Code Playgroud)

和我的human.json文件:

{
  "sex":{
    "male":{"fname":["Michael", "Tom"]}, 
    "female"
  },
  "age":[16, 80],
  "job":[]
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 6

您的对象无效JSON.特别是在该部分:

,"female"}
Run Code Online (Sandbox Code Playgroud)

JSON属性必须具有值.也许这应该是:

,"female":{}}
Run Code Online (Sandbox Code Playgroud)

要么:

,"female":null}
Run Code Online (Sandbox Code Playgroud)


sle*_*man 4

您的 JSON 文件有语法错误。以下内容经过重新格式化以突出显示错误:

{
 "sex":{
  "male":{"fname":["Michael","Tom"]},
  "female"        <----------------- SYNTAX ERROR
 },
 "age":[16,80],
 "job":[]
}
Run Code Online (Sandbox Code Playgroud)

在 JSON 中,对象具有以下语法:

{"name" : "value"}
Run Code Online (Sandbox Code Playgroud)

{"foo"}根据 JSON 规范,该语法无效。因此,您需要为该female属性提供一些值:

{
 "sex":{
  "male":{"fname":["Michael","Tom"]},
  "female":{}
 },
 "age":[16,80],
 "job":[]
}
Run Code Online (Sandbox Code Playgroud)