Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang penukaran antara rentetan JSON dan objects_json

Penjelasan terperinci tentang penukaran antara rentetan JSON dan objects_json

WBOY
WBOYasal
2016-05-16 15:57:551145semak imbas

JSON (JavaScript Object Notation) ialah subset bahasa pengaturcaraan JavaScript. Oleh kerana JSON ialah subset JavaScript, ia boleh digunakan dengan jelas dalam bahasa ini.

fungsi eval Tukar teks JSON kepada objek

Untuk menukar teks JSON kepada objek, anda boleh menggunakan fungsi eval. Fungsi eval memanggil editor JavaScript. Memandangkan JSON ialah subset JavaScript, pengkompil akan menghuraikan teks dengan betul dan menghasilkan struktur objek. Teks mesti disertakan dalam kurungan untuk mengelakkan kekaburan sintaks JavaScript.
var obj = eval('(' JSONTest ')'); Fungsi eval sangat pantas. Ia boleh menyusun dan melaksanakan sebarang program JavaScript, sekali gus mewujudkan isu keselamatan. Fungsi eval hanya boleh digunakan apabila menggunakan kod sumber yang dipercayai dan lengkap. Ini membolehkan penghuraian teks JSON yang lebih selamat. Untuk aplikasi web yang menggunakan XmlHttp, komunikasi antara halaman hanya membenarkan asal yang sama, jadi ia boleh dipercayai. Tetapi ia tidak sempurna. Jika pelayan tidak mempunyai pengekodan JSON yang ketat, atau tidak mempunyai pengesahan input yang ketat, ia mungkin menghantar teks JSON yang tidak sah termasuk skrip berbahaya. Fungsi eval akan melaksanakan skrip berniat jahat.

JSON jurubahasa JSON.parse, JSON.stringify

Menggunakan penghurai JSON boleh menghalang risiko keselamatan seperti fungsi eval yang menukar teks JSON kepada objek. Penghurai JSON hanya boleh mengecam teks JSON dan menolak semua skrip. Penyemak imbas yang menyediakan sokongan JSON asli akan mempunyai penghurai JSON mereka lebih pantas daripada fungsi eval.

Pada masa ini, Firefox, Opera dan IE8 dan ke atas turut menyediakan sokongan JSON setempat. Antaranya, fungsi yang disediakan oleh penterjemah JSON ialah: JSON.parse, JSON.stringify.

Untuk penyemak imbas yang tidak menyediakan sokongan JSON asli, anda boleh memperkenalkan skrip json2.js untuk melaksanakan fungsi penukaran JSON. Skrip json2.js boleh dimuat turun dari halaman https://github.com/douglascrockford/JSON-js/blob/master/json2.js.

Fungsi JSON.parse

Tukar teks JSON kepada objek.
JSON.parse(teks[, menghidupkan semula])
Parameter
teks
Diperlukan. Teks JSON untuk ditukar kepada objek.
menghidupkan semula
Pilihan. Parameter ini ialah fungsi penggantian. Dalam transformasi, untuk setiap nod yang dilalui, fungsi ini akan dilaksanakan, dan nilai pulangan fungsi akan menggantikan nilai nod yang sepadan bagi hasil transformasi.

Fungsi JSON.stringify

Tukar objek kepada teks JSON.
JSON.stringify(value[, replacer[, space]])
Parameter
teks
Diperlukan. Objek yang hendak ditukar kepada teks JSON.
menghidupkan semula
Pilihan. Parameter ini ialah fungsi penggantian. Dalam transformasi, untuk setiap nod yang dilalui, fungsi ini akan dilaksanakan, dan nilai pulangan fungsi akan menggantikan nilai nod yang sepadan bagi hasil transformasi.
ruang
Pilihan. Bilangan ruang untuk mengesot teks JSON output yang diformatkan. Jika parameter ini tidak disediakan, output tidak akan diformatkan.
Wakilkan jenis pemulih parameter
reviver(kunci, nilai)
Ini dalam fungsi reviver ialah nod induk bagi nod yang sedang dilalui. Apabila nod akar dilalui, nod induk ialah objek Objek, nod akar ialah atribut objek, dan nama atribut ialah rentetan kosong.
Parameter
kunci
Apabila nod induk ialah Objek tatasusunan, kuncinya ialah indeks tatasusunan, jika tidak kuncinya ialah nama sifat Objek.
nilai
nilai nod.
Nota: JSON tidak menyokong struktur data bulat.

jQuery.parseJSON( jsonTex )

jQuery juga mempunyai kaedah untuk menukar rentetan kepada format JSON, jQuery.parseJSON(json), yang menerima rentetan JSON format standard dan mengembalikan objek JavaScript (JSON) yang dihuraikan. Sudah tentu, jika anda berminat, anda boleh merangkum sendiri sambungan jQuery jQuery.stringifyJSON(obj) menukarkan JSON kepada rentetan.

Di atas adalah keseluruhan kandungan artikel ini saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn