Ubah Objek menjadi string JSON

Jawaban:

188

jQuery hanya melakukan beberapa pemeriksaan regexp sebelum memanggil metode browser asli window.JSON.parse(). Jika itu tidak tersedia, itu menggunakan eval()atau lebih tepatnya new Function()untuk membuat objek Javascript.

Kebalikannya JSON.parse()adalah JSON.stringify()yang membuat objek Javascript menjadi string. jQuery tidak memiliki fungsionalitasnya sendiri untuk itu, Anda harus menggunakan versi built-in browser atau json2.jsdari http://www.json.org

JSON.stringify() tersedia di semua browser utama, tetapi agar kompatibel dengan browser lama Anda masih membutuhkan penggantian itu.

jAndy
sumber
4
ini mungkin berguna:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger
2
@tekretic: Saya harap Anda sedang mengerjai. Chrome mengimplementasikan JSONobjek host sejak hari ke-1.
jAndy
5
@jAndy: Oh wow, maaf. Bukan trolling tapi OH salah. Ternyata dukungan JSON asli telah ditambahkan ke WebKit pada pertengahan 2009 , membuatnya didukung sejak Chrome 3.0. Komentar saya sebelumnya yang tidak akurat sama sekali didasarkan pada setengah dari pertanyaan usang ini dikombinasikan dengan CMS yang saya kerjakan saat ini yang sebenarnya menggantikan window.JSON dengan perpustakaannya sendiri, artinya JSON.stringify()tidak ditentukan. Cukup gagal dalam semua hal.
Molomby
13
Bagi mereka yang tertarik, berikut bagan bagus dari dukungan JSON asli di browser yang berbeda .
Molomby
1
@jAndy: jangan membingungkan saya; : JSON.stringify 'serialises' sebuah objek, tolong katakan itu hanya kesalahan
halfbit
12

Juga berguna adalah Object.toSource () untuk tujuan debugging, di mana Anda ingin menampilkan objek dan propertinya untuk tujuan debugging. Ini adalah fungsi Javascript generik (bukan jQuery), namun hanya berfungsi di browser "modern".

Excalibur
sumber
4

Ubah objek JavaScript menjadi data json

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

Anda dapat memvalidasi data json menggunakan http://jsonlint.com

Subroto Biswas
sumber
2

Anda dapat menggunakan plugin jquery-Json yang sangat baik:

http://code.google.com/p/jquery-json/

Memudahkan untuk mengonversi ke dan dari objek Json.

George Filippakos
sumber
2
Harap merekomendasikan metode SPL melalui pustaka logika add-on.
David J Eddy
2
SPL = Library PHP Standar. Tebak dalam kasus ini adalah SJL (pustaka javascript standar).
David J Eddy
3
Pertanyaannya adalah tentang jQuery & Javascript. Ini tidak ada hubungannya dengan PHP, pustaka PHP atau SPL.
George Filippakos
3
perpustakaan standar adalah perpustakaan standar; tidak peduli bahasanya. Maksud saya, lebih baik merekomendasikan solusi yang mengajarkan bahasa atas sindrom 'gunakan plugin ini'.
David J Eddy
1
Tepatnya, mengapa menemukan kembali roda ... menggunakan kemampuan bahasa standar melalui 'plugin' tapi saya ngelantur.
David J Eddy