🔫 JSON : Alternatif Bebas-Lemak untuk XML
JSON telah secara luas diadopsi oleh orang-orang yang menemukan bahwa itu membuatnya lebih mudah untuk menghasilkan aplikasi dan layanan terdistribusi. Jenis media Internet resmi untuk JSON adalah application/json
RFC 4627
. Nama file JSON menggunakan ekstensi .json
.
► JavaScript Object Notation ( JSON
) adalah format pertukaran data yang ringan, berbasis teks, dan tidak tergantung bahasa. JSON telah digunakan untuk bertukar data antara aplikasi yang ditulis dalam bahasa Pemrograman apa pun.
Objek JSON adalah objek tunggal yang berisi dua fungsi, parse dan stringify, yang digunakan untuk mem-parsing dan membangun teks JSON.
- JSON.stringify menghasilkan String yang sesuai dengan tata bahasa JSON berikut.
- JSON.parse menerima sebuah String yang sesuai dengan tata bahasa JSON.
Metode parseJSON akan dimasukkan ke dalam Fourth Edition of ECMAScript
. Sementara itu, implementasi JavaScript tersedia di json.org.
var objLiteral = {foo: 42}; // JavaScript Object
console.log('Object Literal : ', objLiteral ); // Object {foo: 42}foo: 42__proto__: Object
// This is a JSON String, like what you'd get back from an AJAX request.
var jsonString = '{"foo": 452}';
console.log('JOSN String : ', jsonString ); // {"foo": 452}
// This is how you deserialize that JSON String into an Object.
var serverResposnceObject = JSON.parse( jsonString );
console.log('Converting Ajax response to JavaScript Object : ', serverResposnceObject); // Object {foo: 42}foo: 42 __proto__: Object
// And this is how you serialize an Object into a JSON String.
var serverRequestJSON = JSON.stringify( objLiteral );
console.log('Reqesting server with JSON Data : ', serverRequestJSON); // '{"foo": 452}'
JSON adalah bagian dari JavaScript. Javascript berasal dari Standar Bahasa Pemrograman ECMAScript.
► ECMAScript
ECMAScript telah berkembang menjadi salah satu bahasa pemrograman tujuan umum yang paling banyak digunakan di dunia. Ini dikenal sebagai bahasa yang tertanam di browser web tetapi juga telah banyak diadopsi untuk aplikasi server dan tertanam. ECMAScript didasarkan pada beberapa teknologi yang berasal, yang paling terkenal JavaScript
(Netscape Communications)) dan JScript
(Microsoft Corporation).) . Meskipun sebelum 1994, ECMA dikenal sebagai "Asosiasi Produsen Komputer Eropa", setelah 1994, ketika organisasi menjadi global, "merek dagang" "Ecma" disimpan karena alasan historis.
ECMAScript adalah bahasa, sedangkan JavaScript, JScript, dan bahkan ActionScript disebut "Dialects"
.
Dialek berasal dari bahasa yang sama. Mereka sangat mirip satu sama lain karena mereka berasal dari bahasa yang sama tetapi mereka telah mengalami beberapa perubahan. Dialek adalah variasi dalam bahasa itu sendiri. Itu berasal dari satu bahasa.
- Bahasa SQL - Hibernate MySQL Dialect, Oracle Dialect, .. yang memiliki beberapa perubahan atau fungsi tambahan.
Informasi tentang browser dan komputer pengguna Anda.
navigator.appName // "Netscape"
ECMAScript adalah bahasa scripting yang membentuk dasar JavaScript. .JavaScript
language resources
ECMA-262
Links
Initial Edition, June 1997
PDF.
2nd Edition, August 1998
PDF.
3rd Edition, December 1999
PDF.
5th Edition, December 2009
PDF.
5.1 Edition, June 2011
HTML.
6th Edition, June 2015
HTML.
7ᵗʰ Edition, June 2016
HTML.
8th edition, June 2017
HTML.
9th Edition, 2018
HTML.
CATATAN « ECMAScript edisi ke-4 yang tidak dipublikasikan karena pekerjaan tidak lengkap .
JSON mendefinisikan seperangkat aturan pemformatan kecil untuk representasi portabel dari data terstruktur.
► Nilai kunci harus dikutip, hanya String yang diizinkan untuk kunci. Jika Anda menggunakan selain String itu akan dikonversi ke String. Tapi tidak disarankan menggunakan kunci selain String. Lihat contoh seperti ini - { 'key':'val' }
selesaiRFC 4627 - jsonformatter
var storage = {
0 : null,
1 : "Hello"
};
console.log( storage[1] ); // Hello
console.log( JSON.stringify( storage ) ); // {"0":null,"1":"Hello","2":"world!"}
var objLiteral = {'key1':'val1'};
var arr = [10, 20], arr2 = [ 'Yash', 'Sam' ];
var obj = { k: 'v' }, obj2 = { k2: 'v2' };
var fun = function keyFun() {} ;
objLiteral[ arr ] = 'ArrayVal'; objLiteral[ arr2 ] = 'OverridenArrayVal';
objLiteral[ obj ] = 'ObjectVal'; objLiteral[ obj2 ] = 'OverridenObjectVal';
objLiteral[ fun ] = 'FunctionVal';
console.log( objLiteral );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log( JSON.stringify( objLiteral ) );
// {"key1":"val1","10,20":"ArrayVal","Yash,Sam":"OverridenArrayVal","[object Object]":"OverridenObjectVal","function keyFun() {}":"FunctionVal"}
console.log( JSON.parse( JSON.stringify( objLiteral ) ) );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log('Accessing Array Val : ', objLiteral[ [10,20] ] );
console.log('Accessing Object Val : ', objLiteral[ '[object Object]' ] );
console.log('Accessing Function Val : ', objLiteral[ 'function keyFun() {}' ] );
► String JSON harus dikutip dengan "dan bukan '. String sangat mirip dengan string C atau Java. String harus dibungkus dengan tanda kutip ganda.
- Literal adalah nilai-nilai tetap, bukan variabel, yang benar-benar Anda berikan dalam skrip Anda.
- String adalah urutan nol atau lebih karakter yang dibungkus dengan tanda kutip dengan pelarian backslash, notasi yang sama digunakan pada sebagian besar bahasa pemrograman.
- 🔫 - Simbol Khusus diizinkan dalam String tetapi tidak direkomendasikan untuk digunakan.
- \ "- Karakter khusus dapat diloloskan. Tetapi tidak direkomendasikan untuk melarikan diri (') Kutipan Tunggal. Dalam mode ketat ia akan melempar dan Kesalahan -
SyntaxError: Unexpected token ' in JSON
Periksa dengan kode ini { "Hai\" \n Team 🔫":5, "Bye \'": 7 }
melalui Edtion JSON online.Modes
notStrict
,
Strinct
.
var jsonString = "{'foo': 452}"; // {'foo': 452}
var jsonStr = '{"foo": 452}'; // {"foo": 452}
JSON.parse( jsonString ); // Unexpected token ' in JSON at position 1(…)
JSON.parse( jsonStr ); // Object {foo: 452}
objLiteral['key'] = 'val'; // Object {foo: 42, key: "val"}
objLiteral.key2 = 'val';
// objLiteral.key\n3 - SyntaxError: Invalid or unexpected token
objLiteral['key\n3'] = 'val'; // Object {"foo": "42", key: "val", key2: "val", "key↵3": "val"}
JSON.stringify( objLiteral ); // {"foo":"42","key":"val","key2":"val","key\n3":"val"}
Accessors Properti Obyek memberikan akses ke properti objek dengan menggunakan notasi titik atau notasi braket.
► Anda memiliki rentang nilai yang lebih terbatas (mis. Tidak ada fungsi yang diizinkan). Nilai dapat berupa string dalam tanda kutip ganda, angka, boolean, null, objek, atau array. Struktur ini dapat disarangkan.
var objLiteral = {};
objLiteral.funKey = function sayHello() {
console.log('Object Key with function as value - Its outcome message.');
};
objLiteral['Key'] = 'Val';
console.log('Object Literal Fun : ', objLiteral );
// Object Literal Fun : Object {Key: "Val"}Key: "Val"funKey: sayHello()__proto__: Object
console.log( JSON.stringify( objLiteral ) ); // {"Key":"Val"}
► JavaScript
adalah implementasi standar ECMAScript yang paling populer. Fitur inti Javascript didasarkan pada standar ECMAScript, tetapi Javascript juga memiliki fitur tambahan lainnya yang tidak ada dalam spesifikasi / standar ECMA. Setiap browser memiliki penerjemah JavaScript.
JavaScript adalah bahasa yang diketik secara dinamis. Itu berarti Anda tidak perlu menentukan tipe data dari variabel saat Anda mendeklarasikannya, dan tipe data dikonversi secara otomatis sesuai kebutuhan selama eksekusi skrip.
Literals
:
'37' - 7 // 30
'37' + 7 // "377"
+'37' + 7 // 44
+'37' // 37
'37' // "37"
parseInt('37'); // 37
parseInt('3.7'); // 3
parseFloat(3.7); // 3.7
// An alternative method of retrieving a number from a string is with the + (unary plus) operator:
+'3.7' // 3.7
Object literals
RFC 7159
Struktur objek direpresentasikan sebagai sepasang kurung keriting yang mengelilingi nol atau lebih pasangan nama / nilai (atau anggota). Nama adalah sebuah string. Satu titik dua muncul setelah setiap nama, memisahkan nama dari nilai. Satu koma memisahkan nilai dari nama berikut. Nama-nama dalam suatu objek HARUS unik.
ECMAScript mendukung warisan berbasis prototipe. Setiap konstruktor memiliki prototipe terkait, dan setiap objek yang dibuat oleh konstruktor tersebut memiliki referensi implisit ke prototipe (disebut prototipe objek) yang terkait dengan konstruktornya. Lebih jauh, sebuah prototipe mungkin memiliki referensi implisit non-nol ke prototipe-nya, dan seterusnya; ini disebut rantai prototipe.
Dalam bahasa berorientasi objek berbasis kelas, secara umum, negara dilakukan oleh instance, metode dilakukan oleh kelas, dan pewarisan hanya struktur dan perilaku. Dalam ECMAScript, negara dan metode dilakukan oleh objek, dan struktur, perilaku, dan negara semuanya diwariskan.
Prototipe adalah objek yang digunakan untuk mengimplementasikan struktur, status, dan perilaku pewarisan dalam ECMAScript. Ketika konstruktor membuat objek, objek yang secara implisit referensi prototipe terkait konstruktor untuk tujuan menyelesaikan referensi properti. Prototipe terkait konstruktor dapat dirujuk oleh ekspresi program constructor.protype, dan properti yang ditambahkan ke prototipe objek dibagi, melalui pewarisan, oleh semua objek yang berbagi prototipe.