1

このjsonデータをdata.jsonファイルに保存しています。

[
"1009 2000",
"1009 2001",
"1002 2002",
"1003 2002"
]

私はこのデータをループ,し、次のコードのように基づいてデータを分割しています

var show = function () {
    var span = $('.input');
    var c = $('ul');
    $.getJSON('data/data.json', function (id) {
        var j = id.split(',');
        var hsl = j[0];
        var ny = j[1];

        $('<li>' + id + '</li>').appendTo(c);
        $(c).appendTo(span);
        console.log(hsl);
    });
}

しかし、これは私にコンソールでこのエラーを与えます

Object 1009 2000,1009 2001,1002 2002,1003 2002 has no method 'split' 

このデータを分割して、このように表示するにはどうすればよいですか?

 1009 2000
 1009 2001
 1002 2002
 1003 2002
4

3 に答える 3

2

何も分割する必要はありません。ループするだけです。

$.getJSON('data/data.json', function (ids) {
    for (var i = 0; i < ids.length; i++) {
        var id = ids[i];
        console.log(id);
    }
});

jQueryは、サーバーから返された文字列をjavascript配列として自動的に解析するため、その要素に直接アクセスできます。

2つのトークンを取得する場合は、各要素をスペースで分割できます。

于 2012-08-15T07:57:09.307 に答える
0

getJsonが自動的に解析するため、id変数は実際には配列です。配列をループして、各アイテムを印刷するだけです。

于 2012-08-15T07:54:58.737 に答える
0

返されるデータは文字列であり、配列に変換する必要があると言っているようです。

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

    id = JSON.parse(id);
    for(var i=0, len=id.length; i<len; i++){
        //do your stuff here
    }
});
于 2012-08-15T07:57:16.037 に答える