1

我通过从 JSON 文件中获取值来创建一个列表。它是一个嵌套的 JSON,列表项是“Thriller”、“Fiction”,它们基本上是下一级的键。单击该项目时,我将其名称(即惊悚片/小说)传递给另一个函数... var val = 惊悚片。

现在我需要在这个新函数中获取与传递的键对应的值(即“书”和书名)。我无法使用点运算符执行此操作 - data.library.val not working..

如果有人做过类似的事情..请帮助..

JSON:

{ "library": [

    {
        "Thriller": [
            { "book": "ABC" },
            { "book": "DEF" }
        ]
    },
    {
        "Fiction": [
            { "book": "GHI" },
            { "book": "JKL" }
        ]
    },]  }

代码片段:

$.getJSON('resources/abc.json', function(data){

        var i = data.library;
        $("#menuList1").css('display','block');
        $(i).each(function(key, value){
            $.each(value, function(key, value){
                    console.log(key);
                    $("#menuList1").append('<a href="#" id="'+key+'" onClick="createSubMenu(id);">'+key+'</a>');
    });       
   });    });
4

2 回答 2

1

你的 Json无效},]特别是这个。一个好的版本:

{
    "library": [{
        "Thriller": [{
            "book": "ABC"
        }, {
            "book": "DEF"
        }]
    }, {
        "Fiction": [{
            "book": "GHI"
        }, {
            "book": "JKL"
        }]
    }]
}

您可以参考网站http://jsonlint.com来验证您的 json。

于 2013-04-29T14:31:02.617 回答
1

利用data.library[key]

MDN 文档

于 2013-04-29T14:22:48.777 回答