【问题标题】:Parsing multidimensional JSON arrays, nested arrays解析多维 JSON 数组、嵌套数组
【发布时间】:2014-02-17 16:53:28
【问题描述】:

我有以下要解析的 JSON,当键是“pubYear”或“docType”时,我想要得到的是所有“名称”和“计数”。我可以遍历摘要并获取“pubYear”和“docType”的所有名称和计数,但我无法获取单个名称和计数。有什么建议吗?我正在使用 JQuery 来解析它。

{
  "summaries": [
    {
      "name": "Publication Year",
      "pubYear": [
        { "name": "2001", "count": 9, "stars": "1 Star" },
        { "name": "2009", "count": 24, "stars": "4 Stars" },
        { "name": "2010", "count": 3, "stars": "2 Stars" }
      ]
    },
    {
      "name": "Document type",
      "docType": [
        { "name": "Book", "count": 20 },
        { "name": "Journal", "count": 2 }
      ]
    }
  ]      
}

$.getJSON("js/init.json", function(json) {
$.each(json.summaries, function(key, data) {
      $.each(data.docType, function(entryIndex, entry) {
      console.log(this.name);
      });
    });
    });

【问题讨论】:

  • 你说的“不能得到个别的”是什么意思?你能展示一下你目前拥有的循环吗?
  • 您可能想在循环遍历之前检查data 是否具有docTypepubYear 属性。但是,您遇到的问题是什么?你哪里有问题?你想做什么?
  • 我想测试“pubYear”,如果它存在,那么我想获取它的所有“名称”值,例如“2001”...

标签: jquery json multidimensional-array


【解决方案1】:

你可以这样做,

HTML:

<button class="pubYear" >pubYear</button>
<button class="docType" >docType</button>

JQUERY:

var json=JSON.parse('{  "summaries": [    {      "name": "Publication Year",      "pubYear": [        { "name": "2001", "count": 9, "stars": "1 Star" },        { "name": "2009", "count": 24, "stars": "4 Stars" },        { "name": "2010", "count": 3, "stars": "2 Stars" }      ]    },    {      "name": "Document type",      "docType": [        { "name": "Book", "count": 20 },        { "name": "Journal", "count": 2 }      ]    }  ]      }');
$('button.pubYear,button.docType').click(function(){
    var but=$(this).attr('class')
    var but1=but=="pubYear"?0:1;
    $.each(json.summaries[but1][but],function(){
        console.log(this.name+' : '+this.count);
    });
})

Fiddle Demo

要获得个人价值,

json.summaries[1].docType[0].name
json.summaries[1].docType[1].name

Fiddle Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多