JSON (JavaScript Object Notation) adalah format ringan yang digunakan untuk pertukaran data. Ini didasarkan pada subset dari bahasa JavaScript (cara objek dibangun dalam JavaScript). Sebagaimana dinyatakan dalam MDN , beberapa JavaScript bukan JSON, dan beberapa JSON bukan JavaScript.
Contoh penggunaan ini adalah tanggapan layanan web. Di masa lalu, layanan web menggunakan XML sebagai format data utama untuk mengirim kembali data, tetapi sejak JSON muncul ( Format JSON ditentukan dalam RFC 4627 oleh Douglas Crockford ), ia telah menjadi format yang disukai karena jauh lebih banyak ringan
Anda dapat menemukan lebih banyak info di situs web JSON resmi .
JSON dibangun di atas dua struktur:
- Kumpulan pasangan nama / nilai. Dalam berbagai bahasa, ini diwujudkan sebagai objek, catatan, struct, kamus, tabel hash, daftar kunci, atau array asosiatif.
- Daftar nilai yang diurutkan. Dalam sebagian besar bahasa, ini diwujudkan sebagai array, vektor, daftar, atau urutan.
Struktur JSON
Berikut adalah contoh data JSON:
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
JSON dalam JavaScript
JSON (dalam Javascript) adalah string!
Orang sering menganggap semua objek Javascript adalah JSON dan JSON adalah objek Javascript. Ini salah.
Dalam Javascript var x = {x:y}
adalah tidak JSON , ini adalah objek Javascript . Keduanya bukan hal yang sama. Setara JSON (diwakili dalam bahasa Javascript) akan var x = '{"x":"y"}'
. x
adalah objek tipe string bukan objek di dalamnya sendiri. Untuk mengubahnya menjadi objek Javascript yang lengkap, Anda harus menguraikannya var x = JSON.parse('{"x":"y"}');
,, x
sekarang menjadi objek tetapi ini bukan JSON lagi.
Lihat objek Javascript Vs JSON
Saat bekerja dengan JSON dan JavaScript, Anda mungkin tergoda untuk menggunakan eval
fungsi untuk mengevaluasi hasil yang dikembalikan dalam panggilan balik, tetapi ini tidak disarankan karena ada dua karakter (U + 2028 & U + 2029) yang valid dalam JSON tetapi tidak dalam JavaScript (baca lebih lanjut tentang ini di sini ).
Oleh karena itu, kita harus selalu mencoba menggunakan skrip Crockford yang memeriksa JSON yang valid sebelum mengevaluasinya. Tautan ke penjelasan skrip ditemukan di sini dan di sini adalah tautan langsung ke file js. Setiap browser utama saat ini memiliki implementasi sendiri untuk ini.
Contoh tentang cara menggunakan parser JSON (dengan json dari cuplikan kode di atas):
//The callback function that will be executed once data is received from the server
var callback = function (result) {
var johnny = JSON.parse(result);
//Now, the variable 'johnny' is an object that contains all of the properties
//from the above code snippet (the json example)
alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};
Parser JSON juga menawarkan metode lain yang sangat berguna stringify
,. Metode ini menerima objek JavaScript sebagai parameter, dan menampilkan kembali string dengan format JSON. Ini berguna ketika Anda ingin mengirim data kembali ke server:
var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
//The above method will output this: {"name":"Andreas","surname":"Grech","age":20}
Dua metode di atas ( parse
dan stringify
) juga mengambil parameter kedua, yang merupakan fungsi yang akan dipanggil untuk setiap kunci dan nilai pada setiap tingkat hasil akhir, dan setiap nilai akan diganti oleh hasil dari fungsi yang Anda masukkan. (Lebih lanjut tentang ini di sini )
Btw, untuk Anda semua di luar sana yang berpikir JSON hanya untuk JavaScript, lihat posting ini yang menjelaskan dan mengonfirmasi sebaliknya.
Referensi