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

parsing JSON - How do I grab data within multiple entries in JSON?

本文关键字:JSON 获取 数据 解析      更新时间:2023-09-26

我有一个小应用程序,从几个API的数据。到目前为止,在我的所有案例中,对于单个响应,我都得到JSON,但对于这个,我得到的是一个点击数组。我如何访问数组中的数据??下面是我的javascript从返回的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以迭代返回的文章数组也有好处。

万分感谢

在你的问题中:

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);
   }
}

注意我已经在你的对象中添加了关键字"articles"。

或者你可以单独返回一个数组,而不是作为另一个对象的一部分:

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);
}

[{"ResultId":1、"文档类型":"基于"增大化现实"技术"、"DocTitle":"有些标题"},{"ResultId":2,"文档类型":"基于"增大化现实"技术"、"DocTitle":"有些标题"}]这个数组也应该有一个索引

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