Apa yang kami anggap ialah pelayan mengembalikan rentetan dalam bentuk JSON Untuk objek JSON yang dirangkumkan oleh pemalam seperti JSONObject, perkara yang sama adalah benar dan tidak akan dijelaskan di sini.
var data="
{
akar:
[
{nama:'1',nilai:'0'},
{nama:'6101',nilai:'Bandar Xi'an'},
{name:'6102',value:'Tongchuan City'},
{nama:'6103',nilai:'Bandar Baoji'},
{nama:'6104',nilai:'Bandar Xianyang'},
{name:'6105',value:'Weinan City'},
{name:'6106',value:'Yan'an City'},
{nama:'6107',nilai:'Bandar Hanzhong'},
{nama:'6108',nilai:'Yulin City'},
{name:'6109',value:'Ankang City'},
{name:'6110',value:'Shangluo City'}
]
}";
Berdasarkan jenis data yang diperoleh secara tak segerak oleh jquery - objek dan rentetan json, di sini kami memperkenalkan kaedah pemprosesan hasil yang diperoleh dalam dua cara.
1. Untuk rentetan JSON yang dikembalikan oleh pelayan, jika permintaan asynchronous jquery tidak mempunyai perihalan jenis, atau diterima sebagai rentetan, maka kaedah ini tidak terlalu menyusahkan, iaitu, meletakkan rentetan dalam eval () dilaksanakan sekali. Kaedah ini juga sesuai untuk mendapatkan objek json menggunakan javascipt biasa Berikut adalah contoh:
var dataObj=eval("(" data ")");//Tukar kepada objek json
alert(dataObj.root.length);//Output bilangan sub-objek akar
$.each(dataObj.root,fucntion(idx,item){
jika(idx==0){
kembali benar;
}
//Keluarkan nama dan nilai setiap sub-objek akar
alert("name:" item.name ",value:" item.value);
})
Nota: Untuk js umum menjana objek json, anda hanya perlu menggantikan kaedah $.each() dengan pernyataan for dan yang lain kekal tidak berubah.
2. Untuk rentetan JSON yang dikembalikan oleh pelayan, jika permintaan asynchronous jquery menetapkan jenis (biasanya atribut konfigurasi ini) kepada "json", atau menggunakan kaedah $.getJSON() untuk mendapatkan pulangan pelayan, maka ada kaedah eval ( ) tidak perlu, kerana hasil yang diperoleh pada masa ini sudah menjadi objek json, anda hanya perlu memanggil objek secara langsung Di sini, kaedah $.getJSON digunakan sebagai contoh untuk menggambarkan kaedah pemprosesan data:
$.getJSON("
http://user.qzone.qq.com/2227211070",{param:"gaoyusi"},fungsi(data
){
//Data yang dikembalikan di sini sudah menjadi objek json
//Operasi lain di bawah adalah sama seperti kes pertama
$.each(data.root,function(idx,item){
jika(idx==0){
return true;//Sama seperti countinue, return false sama seperti break
}
alert("name:" item.name ",value:" item.value);
});
});
Di atas adalah keseluruhan kandungan artikel ini tentang jQuery parsing json.