Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > objek javascript 转 rentetan

objek javascript 转 rentetan

PHPz
Lepaskan: 2023-05-21 12:18:37
asal
1840 orang telah melayarinya

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.

Gunakan JSON.stringify()

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);
Salin selepas log masuk

Outputnya ialah:

{"name":"Tom","age":25,"city":"New York"}
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk

Outputnya ialah:

{"name":"Tom","age":25,"city":"New York"}
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk

hasil output ialah:

Uncaught TypeError: Converting circular structure to JSON
Salin selepas log masuk

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.

Penukaran objek tersuai

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);
Salin selepas log masuk

Hasil keluarannya ialah:

{"name":"Tom","age":25,"toString":"Tom"}
Salin selepas log masuk

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.

Rentetan JSON dengan lekukan

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);
Salin selepas log masuk

Outputnya ialah:

{
  "name": "Tom",
  "age": 25,
  "city": "New York"
}
Salin selepas log masuk

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.

Kesimpulan

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan