0

首先,我对json很陌生,所以如果我犯了一个严重的错误,请原谅我。我有一些代码使用 YQL 从网站获取 json 对象,它以字符串形式返回。所以现在我想把它解析成一个 json 对象然后读取它。这是我的代码:

$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url=%22http://iphone-api.uitzendinggemist.nl/v1/episodes.json%22%20and%20xpath=%27*%27&format=json", function(data) {
console.log(data);
content = data.query.results.html.body.p;
json = JSON.stringify(eval("(" + content + ")"));
str = json.revoked;
$('#table').append('<li>' + str + '</li>');
});

JS小提琴

我只是不明白为什么这给了我无限的价值,而不是它应该给的价值。

所以现在我的问题是这里是否有人知道它为什么不能正常工作。

4

2 回答 2

0

json变量是一个数组,您需要访问一个索引。

string = json[0].revoked;

于 2012-11-09T17:26:48.847 回答
0

您的代码中有很多很多错误。你应该试着理解你正在做的每一步,看起来你没有。这是你的代码的一个分支,我不确定你想要它做什么。我会告诉你一些你做错的事情:

  1. 在函数中声明新变量时使用var关键字
  2. 不要使用 解析 JSON eval(),而是使用一些解析器。例如$.parseJSON()。使用eval()存在安全风险,因为返回的脚本将在客户端上执行,您应该只对获取数据感兴趣。
  3. 构建 HTML 时,请注意对要显示的文本进行编码。在您的情况下,不要连接字符串('<li>' + str + '</li>')。您可以使用 jQuery ( $('<li>').text(str))。
  4. 不要向元素添加li元素table。将它们添加到ulol元素中,或者在表格的情况下创建行和单元格。
  5. 完全不清楚您为什么要进行评估,并且它们将对象字符串化。你最终得到相同的确切数据。
于 2012-11-09T17:52:11.407 回答