Rumah  >  Artikel  >  hujung hadapan web  >  Perbincangan ringkas tentang fungsi stringify, fungsi toJosn dan fungsi parse dalam JSON_json

Perbincangan ringkas tentang fungsi stringify, fungsi toJosn dan fungsi parse dalam JSON_json

WBOY
WBOYasal
2016-05-16 16:18:071499semak imbas

Fungsi JSON.stringify (JavaScript)

Sintaks: JSON.stringify(nilai [, pengganti] [, ruang])

Tukar nilai JavaScript kepada rentetan Notasi Objek JavaScript (Json).

Salin kod Kod adalah seperti berikut:

nilai
Diperlukan. Nilai JavaScript untuk ditukar (biasanya objek atau tatasusunan).
pengganti
Pilihan. Fungsi atau tatasusunan yang digunakan untuk menukar hasil.
Jika pengganti ialah fungsi, JSON.stringify akan memanggil fungsi itu, menghantar kunci dan nilai setiap ahli. Gunakan nilai pulangan dan bukannya nilai asal. Jika fungsi ini kembali tidak ditentukan, ahli tersebut dikecualikan. Kunci objek akar ialah rentetan kosong: "".
Jika pengganti ialah tatasusunan, hanya ahli yang mempunyai nilai kunci dalam tatasusunan akan ditukar. Ahli ditukar dalam susunan yang sama seperti kunci dalam tatasusunan. Apabila argumen nilai juga merupakan tatasusunan, tatasusunan pengganti diabaikan.
ruang
Pilihan. Menambahkan lekukan, ruang dan baris baharu pada teks JSON nilai pulangan untuk menjadikannya lebih mudah dibaca.
Jika ruang ditinggalkan, teks nilai pulangan akan dijana tanpa sebarang ruang tambahan.
Jika ruang ialah nombor, teks nilai pulangan diinden oleh bilangan ruang yang ditentukan pada setiap peringkat. Jika ruang lebih besar daripada 10, teks diendenkan dengan 10 ruang.
Jika ruang ialah rentetan bukan kosong (seperti " "), teks nilai pulangan diendenkan pada setiap peringkat oleh aksara dalam rentetan.
Jika ruang ialah rentetan yang lebih panjang daripada 10 aksara, 10 aksara pertama digunakan.

Jika nilai mempunyai kaedah toJSON, fungsi JSON.stringify akan menggunakan nilai pulangan kaedah tersebut. Jika nilai pulangan kaedah toJSON tidak ditentukan, ahli tidak ditukar. Ini membolehkan objek menentukan perwakilan JSONnya sendiri.

Nilai yang tidak mempunyai perwakilan JSON, seperti tidak ditentukan, tidak akan ditukar. Dalam objek, nilai-nilai ini dibuang. Dalam tatasusunan, nilai-nilai ini digantikan dengan null.

Perintah pelaksanaan

Semasa proses bersiri, jika parameter nilai sepadan dengan kaedah toJSON, JSON.stringify akan memanggil kaedah toJSON terlebih dahulu. Jika kaedah tidak wujud, nilai asal digunakan. Seterusnya, jika parameter pengganti dibekalkan, nilai tersebut (sama ada nilai asal atau nilai pulangan toJSON) digantikan dengan nilai pulangan parameter pengganti. Akhir sekali, ruang ditambahkan pada nilai berdasarkan parameter ruang pilihan untuk menghasilkan teks JSON akhir.

Contoh ini menggunakan JSON.stringify untuk menukar objek kenalan kepada teks JSON. Tentukan tatasusunan penapis ahli untuk menukar hanya nama keluarga dan ahli telefon. Abaikan ahli nama pertama.

Salin kod Kod adalah seperti berikut:

var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
var memberfilter = new Array();
memberfilter[0] = "nama keluarga";
memberfilter[1] = "telefon";
var jsonText = JSON.stringify(contact, memberfilter, "t");
document.write(jsonText);
// Output:
// { "nama keluarga": "Aaberg", "telefon": [ "555-0100", "555-0120" ] }

kaedah keJSON (Tarikh) (JavaScript)

Sintaks: objectname.toJSON()

nama objek

Diperlukan. Objek yang perlu bersiri JSON.

Kaedah toJSON ialah ahli terbina dalam objek JavaScript Tarikh. Ia mengembalikan rentetan tarikh berformat ISO dalam zon waktu UTC (diwakili oleh akhiran Z).

Contoh berikut menggunakan kaedah toJSON untuk menyerikan nilai ahli rentetan huruf besar. Kaedah toJSON dipanggil apabila memanggil JSON.stringify.

Salin kod Kod adalah seperti berikut:

JavaScript
var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
contact.toJSON = function(key)
{
var replacement = new Object();
untuk (var val dalam ini)
{
Jika (jenis (ini[val]) === 'rentetan')
            penggantian[val] = this[val].toUpperCase();
        lain
            penggantian[val] = ini[val]
}
Gantian pemulangan;
};
var jsonText = JSON.stringify(contact);
/* Nilai jsonText ialah:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'
*/

Fungsi JSON.parse (JavaScript)

Tukar rentetan Notasi Objek JavaScript (JSON) kepada objek

Sintaks: JSON.parse(teks [, menghidupkan semula])

Salin kod Kod adalah seperti berikut:

teks
Diperlukan. Rentetan JSON yang sah.
menghidupkan semula
Pilihan. Fungsi yang menukar hasil. Fungsi ini akan dipanggil untuk setiap ahli objek. Jika ahli mengandungi objek bersarang, objek bersarang ditukar sebelum objek induk. Bagi setiap ahli, perkara berikut berlaku:
Jika reviver mengembalikan nilai yang sah, nilai ahli digantikan dengan nilai yang ditukar.
Jika reviver mengembalikan nilai yang sama yang diterimanya, nilai ahli tidak diubah suai.
Jika reviver mengembalikan null atau undefined, ahli dialih keluar.

Contoh berikut menggunakan JSON.parse untuk menukar rentetan JSON kepada objek.

Salin kod Kod adalah seperti berikut:

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.surname ", " contact.firstname);
// Output: Aaberg, Jesper

Contoh berikut menunjukkan cara menggunakan JSON.stringify untuk menukar tatasusunan menjadi rentetan JSON, dan kemudian gunakan JSON.parse untuk menukar rentetan kembali menjadi tatasusunan.

Salin kod Kod adalah seperti berikut:

var arr = ["a", "b", "c"];
var str = JSON.stringify(arr);
document.write(str);
document.write ("
");
var newArr = JSON.parse(str);
manakala (newArr.length > 0) {
Document.write(newArr.pop() "
");
}
// Output:
// ["a","b","c"]
// c
// b
// a
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