繁体   English   中英

无法加载位于我的计算机上的JSON文件

[英]Trouble loading a JSON file located on my computer

我正在使用AngularJS的http()方法加载位于我的计算机上的JSON文件。 该文件的内容是:

{
  "topics": [
    {
      "canonical": "Nebraska Football",
      "alias": "NEB",
      "score": 45,
    },
    {
      "canonical": "Ohio State Football",
      "alias": "OSU",
      "score": 10,
    }
  ]
}

当我加载文件(名为example.json)时,我在使用Firefox和Safari时收到错误消息: Error: JSON.parse: expected double-quoted property name 在Chrome中(正如预期的那样,由于其默认安全性),它只是简单的不起作用。

JSON最初在Firefox中正常加载,但在浏览器更新后它停止工作。

我这样称呼JSON:

$http.get("json/example.json").success(function(data) {
    console.log(data);
});

我尝试使用Python的SimpleHTTPServer来运行网站,但它并没有什么区别。 如果有人对这里出了什么问题有任何猜测,我真的很感激帮助。 谢谢!

无效的Json尝试

{
    "topics": [
    {
        "canonical": "Nebraska Football",
        "alias": "NEB",
        "score": 45
    },
    {
        "canonical": "Ohio State Football",
        "alias": "OSU",
        "score": 10
    }
]
}

如果您通过jsonlint.com运行JSON,则将错误指向},{ 如果从那里向上看,你会看到尾随,不应该在那里。 您的JSON应该是:

{
  "topics": [
    {
      "canonical": "Nebraska Football",
      "alias": "NEB",
      "score": 45
    },
    {
      "canonical": "Ohio State Football",
      "alias": "OSU",
      "score": 10
    }
  ]
}

修改后的代码:从最后一项删除','可以解决您的问题

{
  "topics": [
    {
      "canonical": "Nebraska Football",
      "alias": "NEB",
      "score": 45
    },
    {
      "canonical": "Ohio State Football",
      "alias": "OSU",
      "score": 10
    }
  ]
}

你的问题是,你有多余的,正是你JSON。 修改如下:

{
  "topics": [
    {
      "canonical": "Nebraska Football",
      "alias": "NEB",
      "score": 45
    },
    {
      "canonical": "Ohio State Football",
      "alias": "OSU",
      "score": 10
    }
  ]
}

JSON Lint是验证JSON的好地方。 它说,你应该删除逗号,在每个数组元素的最终值之后。 所以"score":45,应该是"score":45

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM