Cara pertama:
Gunakan fungsi js eval();
testJson=eval(testJson); ialah kaedah penukaran yang salah.
Kaedah penukaran yang betul memerlukan penambahan (): testJson = eval("(" testJson ")");
eval() sangat pantas, tetapi ia boleh menyusun dan melaksanakan sebarang program javaScript, jadi akan ada isu keselamatan. Menggunakan eval(). Sumber mesti boleh dipercayai. Perlu menggunakan parser json yang lebih selamat. Jika pelayan tidak mengekod json dengan ketat atau jika input tidak disahkan dengan ketat, adalah mungkin untuk menyediakan json yang tidak sah atau mengandungi skrip berbahaya, laksanakan skrip dalam eval(), dan keluarkan kod berniat jahat.
kod js:
fungsi ConvertToJsonForJs() {
//var testJson = "{ nama: 'Xiaoqiang', umur: 16 }"; (Disokong)
//var testJson = "{ 'nama': 'Xiaoqiang', 'umur': 16 }"; (Disokong)
var testJson = '{ "nama": "Xiaoqiang", "umur": 16 }';
//testJson=eval(testJson);//Kaedah penukaran yang salah
testJson = eval("(" testJson ")");
alert(testJson.name);
}
Kaedah kedua menggunakan kaedah jquery.parseJSON(), yang mempunyai keperluan yang lebih tinggi pada format json dan mesti mematuhi format json
jquery.parseJSON()
js:kod
fungsi ConvertToJsonForJq() {
var testJson = '{ "nama": "Xiaoqiang", "umur": 16 }';
// Tidak tahu
//'{ nama: "Xiaoqiang", umur: 16 }' (nama tidak dibungkus dengan petikan berganda)
//"{ 'nama': "Xiaoqiang", 'umur': 16 }" (nama menggunakan petikan tunggal)
testJson = $.parseJSON(testJson);
alert(testJson.name);
}