Dalam JavaScript, objek ialah jenis data biasa Kita boleh menggunakan objek untuk mewakili mana-mana entiti atau konsep dalam dunia sebenar. Tetapi dalam beberapa kes kita perlu menukar objek kepada rentetan. Sebagai contoh, apabila kita perlu menghantar data objek semasa menyimpan data atau menghantar permintaan rangkaian, kita perlu menukar objek kepada rentetan. Artikel ini akan menerangkan cara menukar objek JavaScript kepada rentetan.
JavaScript menyediakan kaedah JSON.stringify()
untuk menukar objek JavaScript kepada rentetan JSON. JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang mudah dibaca dan ditulis serta mudah dihuraikan dan dijana oleh mesin. Berikut ialah contoh menggunakan kaedah JSON.stringify()
untuk menukar objek JavaScript kepada rentetan JSON:
let obj = { name: "Tom", age: 25, city: "New York" }; let str = JSON.stringify(obj); console.log(str);
Outputnya ialah:
{"name":"Tom","age":25,"city":"New York"}
Dalam contoh di atas, kami mula-mula mentakrifkan objek JavaScript obj
, yang mengandungi atribut nama, umur dan bandar. Kami kemudian menggunakan kaedah JSON.stringify()
untuk menukar objek ini kepada rentetan JSON dan menetapkannya kepada pembolehubah str
. Akhir sekali, kami menggunakan kaedah console.log()
untuk mengeluarkan rentetan JSON ke konsol.
Sila ambil perhatian bahawa kaedah JSON.stringify()
tidak menukar fungsi dalam objek JavaScript kepada rentetan. Jika objek mengandungi fungsi, fungsi itu akan diabaikan, contohnya:
let obj = { name: "Tom", age: 25, city: "New York", sayHello: function() { console.log("Hello!"); } }; let str = JSON.stringify(obj); console.log(str);
Outputnya ialah:
{"name":"Tom","age":25,"city":"New York"}
Dalam contoh di atas, objek obj
mengandungi fungsi bernama sayHello()
fungsi. Walau bagaimanapun, apabila menggunakan kaedah JSON.stringify()
untuk menukar objek ini kepada rentetan, fungsi sayHello()
diabaikan.
Selain itu, jika objek mengandungi rujukan bulat, contohnya:
let obj1 = { name: "Tom", age: 25 }; let obj2 = { name: "Jerry", age: 30 }; obj1.friend = obj2; obj2.friend = obj1; let str = JSON.stringify(obj1); console.log(str);
hasil output ialah:
Uncaught TypeError: Converting circular structure to JSON
Dalam contoh di atas, objek obj1
dan obj2
adalah saling eksklusif Rujuk orang lain sebagai kawan. Semasa menukar objek JSON.stringify()
kepada rentetan menggunakan kaedah obj1
, ralat jenis dilemparkan disebabkan rujukan bulat.
Kadangkala, kaedah lalai JSON.stringify()
tidak dapat memenuhi keperluan kita. Sebagai contoh, apabila objek mengandungi jenis tersuai yang tidak menyokong format JSON, kami perlu menyesuaikan operasi penukaran objek. Dalam kes ini, kita boleh menggunakan parameter kedua kaedah JSON.stringify()
, juga dikenali sebagai "fungsi penukaran", untuk menukar objek tersuai kepada objek JSON. Berikut ialah contoh penukaran objek tersuai:
let user = { name: "Tom", age: 25, isAdmin: false, toString: function() { return this.name; } }; let jsonUser = JSON.stringify(user, function(key, value) { if (key == "isAdmin") { return undefined; } if (key == "toString") { return value.toString(); } return value; }); console.log(jsonUser);
Hasil keluarannya ialah:
{"name":"Tom","age":25,"toString":"Tom"}
Dalam contoh di atas, kami telah menentukan objek tersuai bernama user
, yang mengandungi nama, Umur dan kaedah boolean isAdmin
dan toString()
. Kemudian, kami menggunakan kaedah JSON.stringify()
untuk menukar objek kepada rentetan JSON dan menyesuaikan parameter kedua sebagai fungsi penukaran. Dalam fungsi penukaran, jika kuncinya ialah isAdmin
, kembalikan undefined
, abaikan atribut jika kuncinya ialah toString
, kembalikan perwakilan rentetan fungsi tersebut; Akhir sekali, kami menggunakan kaedah console.log()
untuk mengeluarkan rentetan JSON ke konsol.
Secara lalai, rentetan JSON yang dikembalikan oleh kaedah JSON.stringify()
tidak termasuk pemformatan dan lekukan. Jika anda perlu mengesot rentetan JSON keluaran, contohnya, menulis rentetan pada fail atau mencetaknya dalam konsol penyemak imbas, kami boleh menggunakan parameter ketiga untuk menentukan tahap lekukan. Berikut ialah contoh rentetan JSON dengan output inden:
let user = { name: "Tom", age: 25, city: "New York" }; let str = JSON.stringify(user, null, 2); console.log(str);
Outputnya ialah:
{ "name": "Tom", "age": 25, "city": "New York" }
Dalam contoh di atas, kami telah menentukan objek JavaScript user
yang mengandungi nama , umur dan atribut bandar. Kami kemudian menukar objek ini kepada rentetan JSON menggunakan kaedah JSON.stringify()
dan menetapkan parameter ketiga kepada 2
untuk menentukan tahap lekukan. Akhir sekali, kami menggunakan kaedah console.log()
untuk mengeluarkan rentetan JSON inden ke konsol.
Artikel ini menerangkan cara menukar objek JavaScript kepada rentetan. Kami menggunakan kaedah JSON.stringify()
untuk menukar objek JavaScript kepada rentetan JSON dan menyesuaikan operasi penukaran objek dan output tahap lekukan. Teknik ini akan sangat berguna dalam pembangunan sebenar Saya harap artikel ini dapat membantu anda memahami penukaran antara objek JavaScript dan rentetan dengan lebih mendalam.
Atas ialah kandungan terperinci objek javascript 转 rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!