--- title: JSON.parse() slug: Web/JavaScript/Reference/Global_Objects/JSON/parse tags: - ECMAScript5 - JSON - Method - Referensi translation_of: Web/JavaScript/Reference/Global_Objects/JSON/parse ---
Method JSON.parse()
memparse string ke JSON, biasanya mengubah nilai yang dihasilkan oleh parsing.
JSON.parse(text[, reviver])
text
reviver
{{optional_inline}}Mengembalikan {{jsxref("Object")}} sesuai dengan teks JSON yang diberikan.
Melontarkan pengecualian {{jsxref("SyntaxError")}} jika string yang di parse tidak sesuai JSON.
JSON.parse()
JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null
reviver
Jika reviver
telah ditentukan, nilai dihitung dengan parsing transformed sebelum dikembalikan. Khususnya, nilai yang terhitung, dan semua propertinya (dimulai dari properti yang paling bersarang dan berlanjut ke nilai asli), secara individu dijalankan melalui reviver
, yang di panggil dengan objek yang berada di dalam properti yang akan diproses sebagai this
dan dengan nama properti sebagai string dan nilai properti sebagai argumen. jika fungsi reviver
mengembalikan {{jsxref("undefined")}} (tidak mengembalikan nilai, contoh, jika eksekusi gagal di akhir fungsi), properti akan dihapus dari objek. Jika tidak, properti akan didefinisikan ulang sebagai sebuah nilai kembali.
reviver
dipanggil dengan string kosong dan nilai paling atas mengizinkan tranformsi dari nilai paling atas. Jadi untuk menangani kasus ini dengan baik, biasanya dengan mengembalikan nilai yang diberikan, atau JSON.parse()
akan mengembalikan {{jsxref("undefined")}}.
JSON.parse('{"p": 5}', function(k, v) { if (k === '') { return v; } // if topmost value, return it, return v * 2; // else return v * 2. }); // { p: 10 } JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', function(k, v) { console.log(k); // log the current property name, the last is "". return v; // return the unchanged property value. }); // 1 // 2 // 4 // 6 // 5 // 3 // ""
JSON.parse()
tidak mengizinkan trailing koma// both will throw a SyntaxError
JSON.parse('[1, 2, 3, 4, ]');
JSON.parse('{"foo" : 1, }');
Spesifikasi | Status | Comment |
---|---|---|
{{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}} | {{Spec2('ES5.1')}} | Initial definition. Implemented in JavaScript 1.7. |
{{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ESDraft')}} |
Fitur | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Dukungan dasar | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.9.1")}} | {{CompatIE("8.0")}} | {{CompatOpera("10.5")}} | {{CompatSafari("4.0")}} |
Fitur | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Dukungan dasar | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Pada Gecko 29 {{geckoRelease("29")}}, string JSON yang gagal akan menampilkan pesan kesalahan yang lebih rinci tentang error dalam memparse. Hal ini sangat berguna ketika mendebug data JSON yang besar.
JSON.parse('[1, 2, 3, 4,]'); // SyntaxError: JSON.parse: unexpected character at // line 1 column 13 of the JSON data