0

尝试在复杂的嵌套 JSON 数组中检索特定值被证明是棘手的。我在想还有另一种方法可以做到这一点,而不是我下面的方法:

 $.getJSON('test.json', function (data) {
    $.each(data.glossary, function (){
     $('ul#results').append('<li><div class=\"name\">' +this.title+ '</div></li><li><div class=\"name\">' +this.GlossTerm+ '</div></li>');
    });
});

test.json 在哪里:

{
"glossary": {
    "title": "example glossary",
    "GlossDiv": {
        "title": "Hello!!",
        "GlossList": {
            "GlossEntry": {
                "ID": "SGML",
                "SortAs": "SGML",
                "GlossTerm": "Standard Generalized Markup Language",
                "Acronym": "SGML",
                "Abbrev": "ISO 8879:1986",
                "GlossDef": {
                    "para": "A meta-markup language, used to create markup languages such as DocBook.",
                    "GlossSeeAlso": ["GML", "XML"]
                },
                "GlossSee": "markup"
            }
        }
    }
}
}

到目前为止,在网页上,返回的结果是:

+未定义

+未定义

+你好!!

+未定义

如何使未定义的值显示正确的值?我已经尝试了很多方法,但似乎都没有奏效!

4

1 回答 1

2

您需要正确遍历对象,没有办法吗?

$.getJSON('test.json', function (data) {
    $.each(data.glossary, function(index, val){
       var title = val.title, //"example glossary"
           term  = val.GlossDiv.GlossList.GlossEntry.GlossTerm; //"Standard Generalized Markup Language"
    });
});
于 2013-03-16T22:20:24.447 回答