JSON .parse()
Penggunaan umum JSON adalah untuk bertukar data ke/dari server web.
Saat menerima data dari server web, data selalu berupa string.
Parsing data dengan JSON.parse()
, dan data menjadi objek JavaScript.
Contoh - Parsing JSON
Bayangkan kami menerima teks ini dari server web:
'{"name":"John", "age":30, "city":"New York"}'
Gunakan fungsi JavaScript JSON.parse()
untuk mengonversi teks menjadi objek JavaScript:
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
Pastikan teks dalam format JSON, atau Anda akan mendapatkan kesalahan sintaks.
Gunakan objek JavaScript di halaman Anda:
Contoh
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
Larik sebagai JSON
Saat menggunakan JSON.parse()
pada JSON yang diturunkan dari larik, metode ini akan mengembalikan larik JavaScript, bukan objek JavaScript.
Contoh
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
Pengecualian
Tanggal Parsing
Objek tanggal tidak diperbolehkan di JSON.
Jika Anda perlu menyertakan tanggal, tulis sebagai string.
Anda dapat mengubahnya kembali menjadi objek tanggal nanti:
Contoh
Ubah string menjadi tanggal:
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Atau, Anda dapat menggunakan parameter kedua, dari JSON.parse()
fungsi tersebut, yang disebut dengan reviver .
Parameter penyegar adalah fungsi yang memeriksa setiap properti, sebelum mengembalikan nilainya.
Contoh
Ubah string menjadi tanggal, menggunakan fungsi penyegar :
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text, function (key, value) {
if
(key == "birth") {
return new
Date(value);
} else {
return value;
}
});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Fungsi Parsing
Fungsi tidak diperbolehkan di JSON.
Jika Anda perlu menyertakan fungsi, tulis sebagai string.
Anda dapat mengubahnya kembali menjadi fungsi nanti:
Contoh
Mengubah string menjadi fungsi:
const text =
'{"name":"John", "age":"function () {return
30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +
obj.age();
Anda harus menghindari penggunaan fungsi di JSON, fungsi akan kehilangan cakupannya, dan Anda harus menggunakannya eval()
untuk mengubahnya kembali menjadi fungsi.