Dalam JavaScript, rentetan dan objek ialah dua jenis yang berbeza, dan data yang disimpannya juga sangat berbeza. Dalam pembangunan web, kita sering menghadapi situasi di mana kita perlu menukar rentetan kepada tatasusunan objek, seperti data JSON yang diperoleh daripada pelayan. Artikel ini akan memperkenalkan beberapa kaedah untuk menukar rentetan kepada tatasusunan objek.
Kaedah 1: Gunakan JSON.parse()
Dalam JavaScript, anda boleh menggunakan kaedah JSON.parse() untuk menukar rentetan dalam format JSON kepada objek atau tatasusunan. Prinsip kaedah JSON.parse() adalah untuk menghuraikan rentetan JSON ke dalam objek atau tatasusunan JavaScript.
Sebagai contoh, kami mempunyai rentetan JSON berikut:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
Gunakan kaedah JSON.parse() untuk menukarnya kepada tatasusunan objek:
var jsonObjectArray = JSON.parse(jsonString);
Kita boleh menggunakan penyataan gelung untuk lelaran ke atas Tatasusunan, keluarkan atribut setiap objek:
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
Kaedah 2: Gunakan eval()
eval() ialah fungsi dalam JavaScript yang boleh merawat rentetan masuk parameter sebagai JavaScript Kod dilaksanakan. Oleh itu, kita boleh menggunakan fungsi eval() untuk menukar rentetan berformat JSON kepada objek atau tatasusunan.
Sebagai contoh, kami mempunyai rentetan JSON berikut:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
Gunakan fungsi eval() untuk menukarnya kepada tatasusunan objek:
var jsonObjectArray = eval("("+jsonString+")");
Begitu juga, kita boleh menggunakan pernyataan gelung untuk mengulangi Array, mengeluarkan atribut setiap objek:
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
Perlu diingat bahawa fungsi eval() mungkin mempunyai risiko keselamatan dan tidak disyorkan untuk digunakan dalam persekitaran pengeluaran. kaedah JSON.parse() harus digunakan.
Kaedah 3: Gunakan pemisahan dan penggantian rentetan
Kaedah lama ialah menggunakan pemisahan dan penggantian rentetan untuk menukar rentetan kepada tatasusunan objek.
Sebagai contoh, kita mempunyai rentetan JSON berikut:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
Mula-mula, kita perlu menggantikan koma yang digunakan untuk memisahkan objek dalam rentetan dengan koma bertitik dan pendakap dengan kurungan segi empat sama, mendapatkan A legal Pengisytiharan tatasusunan JavaScript:
jsonString = jsonString.replace(/}/g, '},'); jsonString = jsonString.replace(/,$/, ''); jsonString = jsonString.replace(/{/g, '['); jsonString = jsonString.replace(/}/g, '}]');
Kemudian, gunakan fungsi eval() untuk menukarnya menjadi tatasusunan objek:
var jsonObjectArray = eval(jsonString);
Begitu juga, kita boleh menggunakan penyataan gelung untuk lelaran melalui tatasusunan dan output setiap Atribut objek:
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
Perlu diingat bahawa kaedah ini hanya sesuai untuk format JSON yang agak mudah Untuk format JSON bersarang dalam, kaedah ini akan gagal.
Ringkasan
Di atas ialah beberapa kaedah untuk menukar rentetan kepada tatasusunan objek. Dalam pembangunan sebenar, adalah disyorkan untuk menggunakan kaedah JSON.parse() untuk menukar rentetan berformat JSON kepada objek atau tatasusunan Ia sangat cekap dan selamat, dan lebih selaras dengan spesifikasi bahasa itu sendiri. Jika anda perlu menyokong versi penyemak imbas yang lebih lama, pertimbangkan untuk menggunakan fungsi eval() atau pemisahan dan penggantian rentetan.
Atas ialah kandungan terperinci Tukar rentetan kepada javascript tatasusunan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!