如何获取JSON中现有特定名称的数量

时间:2019-07-04 09:07:15

标签: javascript json for-loop

我需要对每本“书”执行相同的操作,但是如何遍历它呢?

我的JSON

{
  "bookstore": {
    "book": [
      {
        "-category": "cooking",
        "title": {
          "-lang": "en",
          "#text": "Everyday Italian"
        },
        "author": "Giada De Laurentiis",
        "year": "2005",
        "price": "30.00"
      },
      {
        "-category": "children",
        "title": {
          "-lang": "en",
          "#text": "Harry Potter"
        },
        "author": "J K. Rowling",
        "year": "2005",
        "price": "29.99"
      },
      {
        "-category": "web",
        "title": {
          "-lang": "en",
          "#text": "Learning XML"
        },
        "author": "Erik T. Ray",
        "year": "2003",
        "price": "39.95"
      }
    ]
  }
}

我的源代码是给出每本书的标题以及内容之间的标题,所有这些都没有问题。 只有循环,我有我的问题。 有人有主意吗?

2 个答案:

答案 0 :(得分:1)

您必须访问嵌套对象,然后访问其中的数组。

var bookstoreObj= yourJson["bookstore"];
var bookArr=bookstoreObj["book"];

现在您有了书本的数组,对其进行迭代。

for(var i=0;i<bookArr.length;i++)
{
   var book=bookArr[i];
  //get value which you want:-category, author,year, price like this
   var author= book["author"];

  //to access title object:
  var title=book["title"] ;
  //now you can access:-lang, #text field
  var lang= title["-lang"];
  var text=title["#text"];

}

在这里

  

您的杰森

推断您的

  

jsonObject

您已经显示。

答案 1 :(得分:0)

您到底想达到什么目的? 如果您想翻阅书籍,可以这样做

bookstore.book.forEach(elem=>{
 //logic
}

否则,请详细说明!