1

私は現在jsonの学習に取り組んでおり、いわば私の偉業を成し遂げるために、json情報を含むファイルを取得してサイトに取り込むための最良の方法は何だろうと思っていました。ファイルは次のようになります。

window.test =
{
    "header1":
    [
        { "title": "title1", "author": "author1"},
        { "title": "title2", "author": "author2"},
        { "title": "title3", "author": "author3"}
    ],
    "header2":
    [
        { "title": "title1", "author": "author1"},
        { "title": "title1", "author": "author2"},
        { "title": "title1", "author": "author3"}
    ]
};

それでは、コードは次のようになりますか?

$(function() {
    $.getJSON('jsonFile.js',function(data){
        $.each(data, function(){
            console.log(header1.title);
            console.log(header2.title);
        });
    });
});

繰り返しになりますが、私は JSON の初心者なので、チュートリアル、提案、ここでのコアコンセプトを理解するのに役立つものは何でも役立ちます。

4

3 に答える 3

5

あなたのjson:

{ 
    "header1": 
    [ 
        { "title": "title1", "author": "author1"}, 
        { "title": "title2", "author": "author2"}, 
        { "title": "title3", "author": "author3"} 
    ], 
    "header2": 
    [ 
        { "title": "title1", "author": "author1"}, 
        { "title": "title1", "author": "author2"}, 
        { "title": "title1", "author": "author3"} 
    ] 
}

あなたのコード:

$(function() {   
    $.getJSON('jsonFile.js',function(data){

        console.log(data.header1[0].title);   
        console.log(data.header2[0].title);     
    });   
});  

オプションで、data.header1 と data.header2 に対して each() を実行します。

于 2012-04-03T20:52:25.043 に答える
0

他の人が述べているように、window.textと 末尾のセミコロンを削除する必要があります。次に、そのようにファイルを直接読み取ると、テキストとしてエンコードされるため、反復する前に JSON に変換する必要があります。

var jsonData = JSON.parse(data));data パラメーターから JSON オブジェクトを取得することができます。

于 2012-04-03T20:45:54.780 に答える
0

あなたが持っている JSON 構造の場合、以下のようなループは正しいはずです。

デモ

$.each(test, function(key, val) {
    console.log(key); //this will print the header
    $.each(val, function(index, val1) {
        console.log(val1.title + ' ' + val1.author); //this will print the header contents
    });
});
于 2012-04-03T20:46:10.510 に答える