Saya hanya ingin tahu tentang "stringify" vs "serialize" . Bagi saya mereka adalah hal yang sama (meskipun saya bisa salah), tetapi dalam pengalaman masa lalu saya (kebanyakan dengan asp.net ) saya menggunakan Serialize()
dan tidak pernah menggunakan Stringify()
.
Saya tahu saya bisa membuat alias sederhana di Javascript,
// either
JSON.serialize = function(input) {
return JSON.stringify(input);
};
// or
JSON.serialize = JSON.stringify;
tapi saya hanya ingin tahu tentang perbedaan antara keduanya dan mengapa memilih dipilih.
untuk tujuan perbandingan, inilah cara Anda membuat serialisasi XML ke String di C #
public static string SerializeObject<T>(this T toSerialize)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
StringWriter textWriter = new StringWriter();
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
}
javascript
Chase Florell
sumber
sumber
JSON.serialize = JSON.stringify
?ToString();
. Ada inlies menggosok.JSON.serialize(obj).toString();
ataujsonObject().toString();
... dengan cara ini akan terlihat seperti C # saya ... tapi sekarang saya terlalu memperumitnya.Jawaban:
Lihatlah lebih dekat dua komentar yang Anda ajukan pada pertanyaan:
dan
Sekarang ingat bahwa dalam Javascript, objek adalah hash (lebih tepatnya, jika menggunakan Prototipe atau kerangka kerja lain, itu harus dikualifikasikan sebagai "jenis hash khusus" - tetapi bentuk sederhana berfungsi untuk contoh ini):
Satu-satunya alasan yang
serialize()
mungkin diperlukan dalam Javascript adalah untuk memotong fungsi, referensi ke objek lain, dll.Jadi, untuk kembali ke contoh C # Anda - kami baru saja memotong
.Serialize()
sebagai tidak perlu. Objek adalah hash, sudah serial, lebih jauh "serialisasi" harus dilakukan secara manual dalam kode Anda sendiri. Yang tertinggal hanyalah Anda.ToString()
.Apakah
.stringify()
lebih masuk akal sekarang?sumber
.toString()
Ini karena notasi JSON tersebut ditentukan pada tahun 1999 tidak setelah tahun 2002 (
asp.net
dirilis pada tahun itu). jadi saya kira mereka tidak tahu tentangserialize
.Jokes terpisah,
Mendengar kata itu
serialization
, hal pertama yang muncul di pikiran saya adalah seperti mengubah data menjadi byte, di sini JSON.stringify masuk akal karena mengubah objek ke representasi string bukan representasi byte.PS:
@Chase Florell, Anda tidak bisa hanya menambahkan
JSON.serialize
, seperti dalam mode ketat, kode ini mungkin sebenarnya gagal di beberapa browser.karena
JSON
bukan Obyek rata-rata Anda.sumber
JSON
bukan Obyek rata-rata Anda"? Saya tidak marah, hanya tidak jelas tentang apa yang Anda maksud.