当传递key时,从json获取值是一个变量

时间:2013-04-29 14:20:36

标签: javascript jquery json

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

现在我需要获取与此新函数中传递的键相对应的值(即“book”和“bookname”)。我无法使用点操作符 - data.library.val 无效..

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

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

2 个答案:

答案 0 :(得分:1)

使用data.library[key]

MDN Documentation

答案 1 :(得分:1)

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

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

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