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

时间:2016-05-04 03:13:37

标签: javascript json ajax

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

整个错误消息显示为

JSON.parse: expected ',' or '}' after property value 
in object at line 2 column 22 of the JSON data. 

我在网上找了它,并且有人有类似的错误消息,但是,他们没有通过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();

和我的human.json文件:

{
  "sex":{
    "male":{"fname":["Michael", "Tom"]}, 
    "female"
  },
  "age":[16, 80],
  "job":[]
}

5 个答案:

答案 0 :(得分:6)

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

Application_Status IN ('New','Received','Checking')

JSON属性必须具有值。也许那应该是:

,"female"}

或:

,"female":{}}

答案 1 :(得分:2)

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

{
 "sex":{
  "male":{"fname":["Michael","Tom"]},
  "female"        <----------------- SYNTAX ERROR
 },
 "age":[16,80],
 "job":[]
}

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

{"name" : "value"}

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

{
 "sex":{
  "male":{"fname":["Michael","Tom"]},
  "female":{}
 },
 "age":[16,80],
 "job":[]
}

答案 2 :(得分:1)

您的JSON确实无效。

,"female":null}

或许将该行更改为:

{
  "sex": {
    "male":{
      "fname": ["Michael","Tom"]
    },
    "female"   ## Here is the problem
  },
  "age": [16,80],
  "job": []
}

这完全取决于你想做什么

答案 3 :(得分:0)

您的"female"错误,需要密钥或值

您可以将json文件更改为

 {
"sex":{"male":{"fname":["Michael","Tom"]} ,"female":null},
 "age":[16,80],
 "job":[]
}

答案 4 :(得分:0)

您使用的JSON文件是无效的json。 JSON是名称/值对的集合。 JSON中的每个键都应包含值。在你的情况下,关键&#34;女性&#34;没有任何价值。下面显示的是有效的JSON格式。

{
"sex": {
    "male": {
        "fname": ["Michael", "Tom"]
    },
    "female": "XXX"
},
"age": [16, 80],
"job": []

}