【问题标题】:JSON.parse: expected ',' or '}' after property value in objectJSON.parse:对象中的属性值后预期的“,”或“}”
【发布时间】:2016-05-04 03:13:36
【问题描述】:

当我通过 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":[]
}

【问题讨论】:

标签: javascript json ajax


【解决方案1】:

您的对象不是有效的 JSON。具体在这部分:

,"female"}

JSON 属性必须有一个值。也许应该是这样:

,"female":{}}

或:

,"female":null}

【讨论】:

    【解决方案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":[]
    }
    

    【讨论】:

      【解决方案3】:

      您的 JSON 确实无效。

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

      也许将该行更改为:

      "female": {}
      

      这一切都取决于你想要做什么

      【讨论】:

        【解决方案4】:

        您的"female" 错误,需要键或值

        你可以把json文件改成

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

        【讨论】:

          【解决方案5】:

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

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

          }

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-11
            • 1970-01-01
            • 2021-12-10
            • 2021-09-26
            • 1970-01-01
            相关资源
            最近更新 更多