【问题标题】:Parse JSON with JQuery - parseJSON/getJSON使用 JQuery 解析 JSON - parseJSON/getJSON
【发布时间】:2013-04-09 23:44:39
【问题描述】:

我正在尝试解析具有此代码的 JSON 文件:

{
    "employees": [
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}

使用这个小脚本:

<script>
    var obj = $.parseJSON("employe.json")
</script>

我只想使用 employees 对象,但出现此错误:

SyntaxError: JSON.parse: unexpected character @ http://code.jquery.com/jquery-1.9.1.min.js:3

我也用getJSON 尝试过同样的事情,但它也没有奏效。

getJSON 用于外部文件,parseJSON 用于 json 字符串?

【问题讨论】:

  • parseJSON 将 json 字符串解析为对象。 getJSON 在内部使用 parseJSON,因此它会自动进行解析。当您收到“意外字符”错误时,几乎总是因为 JSON 无效,并且存在不应该存在的字符。
  • 我复制并粘贴了我的 JSON 文件,您看到任何错误吗?
  • 您可以在 jsonlint.com 测试您的 json,错误控制台也应该告诉您是什么字符导致了问题。
  • 您应该始终阅读文档。我猜如果你看过api.jquery.com/jQuery.parseJSON,你会看到它接受一个JSON 字符串,而不是一个URL。 api.jquery.com/jQuery.getJSON 也提供了一些例子,也许他们有帮助?
  • 阅读我所说的,我已经假设 parseJSON 正在接受一个字符串。我使用 parseJSON 的原因是 getJSON 不起作用。但是感谢您的帮助!

标签: jquery json parsing


【解决方案1】:

您应该首先加载 json 文件,然后将该文档的结果字符串内容发送到 parse 语句中。

$.ajax({url: "employe.json"}).done(function(data){
    console.log($.parseJSON(data));
});

【讨论】:

  • 我明白了,我需要先加载 JSON 文件。我仍然收到类似的错误:“格式错误”。它指向我的 JSON 文件的第一个括号。
  • 哦,对了。但我刚刚发现 getJSON 是一个捷径。
  • 刚刚做了,我所有的 JSON 都是有效的:S
  • 在解析数据之前注销数据,确保它正在加载数据。也许也可以尝试使用 JSON.parse 代替(删除一层。)
  • @Maxwell 你把这个排序了吗?
猜你喜欢
  • 1970-01-01
  • 2010-12-31
  • 2023-03-04
  • 1970-01-01
  • 2011-03-15
  • 2012-11-02
  • 2017-08-27
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多