Saya mencari-cari objek seperti {'foo': 'bar'}
Bagaimana saya bisa mengembalikan string ke objek?
javascript
json
object
thelolcat
sumber
sumber
{foo: 'bar'}
itu bukan JSON yang valid (sementara itu adalah ekspresi javascript yang valid).Jawaban:
Anda perlu
JSON.parse()
string.sumber
JSON.parse
adalah kebalikan dariJSON.stringify
.sumber
JSON.stringify
danJSON.parse
hampir oposite, dan "biasanya" hal semacam ini akan berhasil:sehingga obj dan obj2 adalah "sama".
Namun ada beberapa batasan yang harus diperhatikan. Seringkali masalah ini tidak masalah karena Anda berurusan dengan objek sederhana. Tapi saya akan menggambarkan beberapa dari mereka di sini, menggunakan fungsi pembantu ini:
Anda hanya akan mendapatkan
ownProperties
objek dan kehilangan prototipe:Anda akan kehilangan identitas:
Fungsi tidak bertahan:
Objek tanggal berakhir sebagai string:
Nilai yang tidak terdefinisi tidak bertahan:
Objek yang menyediakan
toJSON
fungsi mungkin tidak berperilaku benar.Saya yakin ada masalah dengan tipe bawaan lain juga. (Semua ini diuji menggunakan node.js sehingga Anda mungkin mendapatkan perilaku yang sedikit berbeda tergantung pada lingkungan Anda juga).
Ketika itu penting kadang-kadang dapat diatasi dengan menggunakan parameter tambahan
JSON.parse
danJSON.stringify
. Sebagai contoh:sumber
JSON SPEC
{ bar:"bar" }
(dari prototipe Anda) tidak dianggap json valid karenafoo
merupakan variabel daripada string. Valid json perlukey
menjadistring
.JSON.parse
. Saya hanya memperingatkan bahwa ada banyak kasus yang tidak akan ditangani dengan benar. Jika Anda menggunakan data primitif murni (tanpa kelas, prototipe) dan hanya tipe data yang didukung oleh JSON (tanpa tanggal, XML, HTML, dll.) Maka Anda OK.X = { foo:"bar" }
sama denganX = { "foo":"bar" }
yang sama denganX = {}; X.foo = "bar"
yang sama denganX={}; X["foo"] = "bar"
objek yang dihasilkan identik dalam semua 4 kasus. Itu tidak ada bedanya dengan validitas JSON yang dihasilkan.http://jsbin.com/tidob/1/edit?js,console,output
Objek JSON asli mencakup dua metode utama.
The
JSON.parse()
Metode mem-parsing string JSON - yaitu merekonstruksi objek JavaScript aslivar jsObject = JSON.parse(jsonString);
Metode JSON.stringify () menerima objek JavaScript dan mengembalikan setara JSON-nya.
var jsonString = JSON.stringify(jsObject);
sumber
Disarankan untuk digunakan
JSON.parse
Ada alternatif yang bisa Anda lakukan:
Json dalam javascript
Mengapa menggunakan fungsi JavaScript JavaScript ide yang buruk?
sumber
Bagaimana dengan ini
Ini adalah alternatif yang lebih aman untuk
eval
.Tampilkan cuplikan kode
sumber
Lihat ini.
http://jsfiddle.net/LD55x/
Kode:
sumber
sumber