-3

はい、次のような問題について質問しているスレッドが多数ありますが、動的キーと、キーごとに複数の値を保持する json から単一の値をプルすることに関するヘルプはほとんど見つかりませんでした。

キーが動的なjsonがあり、個別の値ごとに呼び出すことができる必要があります。

何か案は?

以下のjsonの例:

{"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}}

私は次のコードをいじってみましたが、現在のところ、個々の値ではなく値の文字列を吐き出すことしかできませんでした:

        $.each(data, function (key1, value1) {
            $.each(value1, function (key, value) {
                $('body').append('<li id="' + key + '">' + key1 +' ' + key +' ' + value + '</li>');
            });
        });

これで解決:

        json = JSON.parse(data);
        for (var index in json) {
            $.each(json[index], function(key,value) {
                for(var i = 0; i< json[index][key].length; i++){
                    $('body').append('<li>' + index +' ' + key +' ' + json[index][key][i] + '</li>');
                }
            });
        }
4

4 に答える 4

0

この例から、すべての要素にアクセスできます

var json = {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}};

for (var i=0; i<json.AppliedPrepaidBundle.id.length; i++) {
   $('body').append("<li>AppliedPrepaidBundle id"+i+": "+json.AppliedPrepaidBundle.id[i]+'</li>');
}
for (var i=0; i<json.AppliedPrepaidBundle.prepaid_bundle_id.length; i++) {
    $('body').append("<li>PrepaidBundleid"+i+":"+json.AppliedPrepaidBundle.prepaid_bundle_id[i]+'</li>');
}
for (var i=0; i<json.Device.id.length; i++) {
    $('body').append("<li>Device id"+i+": "+json.Device.id[i]+'</li>');

}

ここにフィドルがあります

于 2013-10-25T08:35:59.503 に答える
0

JSON.parseオブジェクトの作成に使用します。( JavaScript で JSON を解析する方法を参照してください)。次に、プロパティをループしますfor (x in yourObject) { ... }

var jsonObject = JSON.parse('your JSON-String');
for (property in jsonObject) {
    // do something with jsonObject[property]
    console.log(property + ' ' + jsonObject[property]);
}
于 2013-10-25T08:36:40.847 に答える
0

JSON は JavaScript でオブジェクトを返します。したがって、次のようなことができます。

var json = {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}};

for (var i=0; i<json.AppliedPrepaidBundle.id.length; i++) {
    console.log("id"+i+": "+json.AppliedPrepaidBundle.id[i]);
}

これにより、ID オブジェクトのすべての値が出力されます: 14、15、24、25 など

于 2013-10-25T08:32:28.817 に答える