解析JSON - 如何在JSON中的多个条目中获取数据?

时间:2011-08-31 03:56:13

标签: javascript json api

我有一个小应用程序从几个API中提取数据。到目前为止,在我的所有情况下,我都会收到JSON以获得单个响应,但是对于这个,我获得了一系列命中。如何访问数组中的数据?这是我从返回的JSON中获取数据的基本结构:

// pull article from JSON
function getArticle(article) {
  document.getElementById('articletitle').innerHTML = (article.title);
  ...
};

因此,对于单个响应非常有效,它会抓取文章标题并将其抛入div中。但是,如果我收回一系列像这样的文章

,该怎么办?

JSON:

getArticle({"Title":"title","Rights":"Copyright (C)",...[{"ResultId":1,"DocType":"ar","DocTitle":"some title",...

我的主要问题是如何抓住某篇文章中DocTitle的说法?只是抓住.DocTitle似乎没有通过。奖励点用于修改javascript以迭代返回的文章数组。

万分感谢。

2 个答案:

答案 0 :(得分:0)

[{“ResultId”:1,“DocType”:“ar”,“DocTitle”:“some title”},{“ResultId”:2,“DocType”:“ar”,“DocTitle”:“some标题”}] 这个数组也应该有一个索引。

var test={"Title":"title",content:[{"ResultId":1,"DocType":"ar","DocTitle":"some title"},{"ResultId":2,"DocType":"ar","DocTitle":"some title"}]};
alert(test.content[0].DocTitle);

答案 1 :(得分:0)

在你的问题中:

getArticle({"Title":"title","Rights":"Copyright (C)",...
[{"ResultId":1,"DocType":"ar","DocTitle":"some title",... 

过度缩写到我们必须猜测你的意思。除非与关键字相关联,否则不能将数组放在对象的中间。你需要这样的东西:

getArticle({"Title":"title","Rights":"Copyright (C)",...
    "articles" : [{"ResultId":1,"DocType":"ar","DocTitle":"some title",...]
});

function getArticle(article) {
   alert(article.articles[0].DocTitle); // first item in array: "some title"

   for (var i = 0; i < article.articles.length; i++) {
      var currentArticle = article.articles[i];
      alert(currentArticle.ResultId + ": " + currentArticle.DocTitle);
   }
}

注意我已在您的对象中添加了“文章”键。

或者你可以自己返回一个数组而不是另一个对象的一部分:

getArticle([{"ResultId":1,"DocType":"ar","DocTitle":"some title",...},{"ResultId":2,...},...]);

function getArticle(articles) {
   for (var i = 0; i < articles.length; i++)
      alert(articles[i].DocTitle);
}