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"
            }
        }
    }
}
}

これまでのWebページでは、返される結果は次のとおりです。

+未定義

+未定義

+こんにちは!!

+未定義

未定義の値に正しい値を表示させるにはどうすればよいですか?私は多くの方法を試しましたが、どれもうまくいかないようです!

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 に答える