0

我在这里看到了一个非常基本的 JSON 提取。

[
  { first: "bob", last: "jones", },
  { first: "josh", last: "smith", }
]

我正在尝试使用$.getJSON.

我以前从未使用过这个 jquery 函数并且遇到了问题。我的猜测是我在信息 div 中遗漏了一些东西。

我目前在此示例中有 JSON URL,但我的实时代码具有实际 URL。

感谢您的任何指导,这是我的代码:

Javascript

$.getJSON('JSON URL', 'limit=5', processNames);

function processNames(data) {
  var infoHTML='';

  $.each(data, function(name) {
    infoHTML += 'First: ' + name.first;
    infoHTML += 'Last: ' + name.last;
  });

  $('#info').html(infoHTML);
}

HTML

<div id="info"></div>
4

2 回答 2

3

您的 JSON 无效。您在字段名称周围缺少引号。尝试这样的事情:

[
    { "first": "Bob", "last": "Jones" },
    { "first": "Josh", "last": "Smith" }
]
于 2013-08-12T02:03:00.283 回答
0

在 JSON 中,键必须用双引号括起来(字符串也必须如此)。不允许使用单引号,并且必须使用引号。

使用 JSON 时,您必须确保它是有效的。

很容易错过逗号、引号或不匹配的括号。为此,我建议使用 JSON验证器

在检查您问题中的 JSON 对象时,我发现它无效有两个原因:

  1. 有效的 JSON 对象必须始终使用 ["] 包装属性名称
  2. 在第二个值之后有一个额外的逗号 [,],而应该有大括号。

从服务器获得答案时,我建议您检查一下这是否是您期望的答案。例如,在 $.each(data, function(name) 之前,您可以执行以下操作

alert(JSON.stringify(data,));

这将显示从服务器收到的字符串。

一般来说,我建议使用 $.ajax 而不是 $.getJSON,因为您可以更好地控制来自服务器的响应,您可以决定是否要缓存它、异步调用等等。

你可以在这里看到 jQuery Ajax API

希望我的回答对你有所帮助。

于 2013-08-12T05:11:39.407 回答