Apa JSON dan mengapa saya menggunakannya?

I've melihat di wikipedia dan mencari di Google dan membaca dokumentasi resmi, tapi saya masih belum't sampai ke titik di mana saya benar-benar memahami apa JSON, dan mengapa saya'd menggunakannya.

Saya telah membangun aplikasi menggunakan PHP, MySQL dan Javascript / HTML untuk sementara, dan jika JSON dapat melakukan sesuatu untuk membuat hidup saya lebih mudah atau kode saya baik atau tampilan user interface yang lebih baik, maka saya'd ingin tahu tentang hal itu. Dapatkah seseorang memberi saya penjelasan ringkas?

Mengomentari pertanyaan (4)
Larutan

JSON (JavaScript Object Notation) adalah ringan format yang digunakan untuk mempertukarkan data. Hal ini didasarkan pada subset dari bahasa JavaScript (benda cara built in JavaScript). Sebagai dinyatakan dalam MDN, beberapa JavaScript tidak JSON, dan beberapa JSON adalah JavaScript tidak. Contoh di mana hal ini yang digunakan adalah web jasa tanggapan. Di 'tua' hari, layanan web XML digunakan sebagai data primer format untuk mentransmisikan data kembali, tapi karena JSON muncul (format JSON ditentukan dalam RFC 4627 oleh Douglas Crockford), itu telah menjadi format pilihan karena jauh lebih ringan Anda dapat menemukan lebih banyak info resmi JSON situs web. JSON ini dibangun pada dua struktur:

  • Sebuah koleksi dari pasangan nama/nilai. Dalam berbagai bahasa, ini diwujudkan sebagai sebuah objek, record, struct, kamus, tabel hash, mengetik daftar, atau array asosiatif.
  • Daftar nilai. Dalam kebanyakan bahasa, hal ini diwujudkan sebagai sebuah array, vector, 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 JavaScript

JSON (Javascript) adalah sebuah string! Orang-orang sering menganggap semua Javascript objek JSON dan JSON adalah Javascript object. Ini adalah salah. Dalam Javascript var x = {x:y} adalah tidak JSON ini adalah Javascript object. Dua bukan hal yang sama. JSON setara (diwakili dalam bahasa Javascript) akan var x = '{"x":"y"}'. x adalah sebuah objek dari tipe string bukan objek di dalamnya's sendiri. Untuk mengubah ini menjadi sepenuhnya matang objek Javascript anda harus terlebih dahulu mengurai, var x = JSON.mengurai('{"x":"y"}');, x ini sekarang menjadi objek tapi ini bukan JSON lagi. Lihat Javascript object Vs JSON

Ketika bekerja dengan JSON dan JavaScript, anda mungkin akan tergoda untuk menggunakan eval fungsi untuk mengevaluasi hasilnya dikembalikan dalam callback, tapi ini tidak disarankan karena ada dua karakter (U+2028 & U+2029) berlaku dalam JSON tapi tidak dalam JavaScript (baca lebih lanjut ini di sini). Oleh karena itu, kita harus selalu mencoba untuk menggunakan Crockford's script yang memeriksa valid JSON sebelum mengevaluasi. Link ke script penjelasan ditemukan di sini dan di sini adalah direct link untuk file js. Setiap browser yang utama saat ini telah implementasi sendiri untuk ini. Contoh tentang bagaimana untuk menggunakan JSON parser (dengan json dari kode di atas cuplikan):

//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'
};

JSON parser juga menawarkan hal lain yang sangat berguna metode, stringify. Metode ini menerima JavaScript objek sebagai parameter, dan output kembali string dengan format JSON. Hal 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 (mengurai dan stringify) juga mengambil parameter kedua, yang merupakan fungsi yang akan dipanggil untuk setiap key dan value pada setiap tingkat dari hasil akhir, dan setiap nilai yang akan digantikan oleh hasil dari diinput fungsi. (Lebih lanjut tentang ini di sini) Btw, untuk kalian semua di luar sana yang berpikir JSON adalah JavaScript, check out post ini yang menjelaskan dan menegaskan sebaliknya.

Referensi

Komentar (9)

Konsep Jelas - Tidak ada Kode atau Jargon Teknis

Apa itu JSON? – Bagaimana saya menjelaskan kepada istri sayaTM

Saya: "Itu pada dasarnya adalah cara berkomunikasi dengan seseorang dalam menulis....tapi dengan aturan yang sangat spesifik.

Istri: ya.......?

Saya: Di membosankan bahasa inggris, aturan yang cukup longgar: sama seperti dengan kandang melawan. Tidak begitu dengan JSON. Ada banyak cara untuk menjelaskan sesuatu:

• Contoh 1: Kita keluarga memiliki 4 orang: Kau, aku dan 2 anak-anak.

• Contoh 2: keluarga Kami: kau, aku, kid1 dan kid2.

• Contoh 3: Keluarga: [ kau, aku, kid1, kid2]

• Contoh 4: kita punya 4 orang dalam keluarga: ibu, ayah, kid1 dan kid2.

Istri: Mengapa mereka tidak hanya menggunakan bahasa inggris, bukan?

Saya: Mereka akan, tapi ingat kita sedang berhadapan dengan komputer. Komputer adalah bodoh dan tidak akan mampu untuk memahami kalimat. Jadi kita harus benar-benar spesifik ketika komputer yang terlibat jika mereka bingung. Selain itu, JSON adalah cukup efisien cara berkomunikasi, sehingga sebagian besar dari hal yang tidak relevan dipotong, yang cukup tangan. Jika anda ingin berkomunikasi dengan keluarga kami, untuk komputer, salah satu cara yang bisa anda lakukan agar lebih seperti ini:

{
                "Family" :  ["Me", "Wife", "Kid1", "Kid2"] 
}

......dan itu pada dasarnya adalah JSON. Tapi ingat, anda HARUS mematuhi JSON aturan tata bahasa. Jika anda melanggar aturan tersebut, maka komputer tidak akan mengerti (yaitu mengurai) apa yang anda tulis.

Istri: Jadi bagaimana saya menulis di Json?

Cara yang baik akan menggunakan json serialiser - yang merupakan perpustakaan yang melakukan angkat berat untuk anda.

Ringkasan

JSON pada dasarnya adalah sebuah cara berkomunikasi data dengan seseorang, dengan sangat, aturan yang sangat spesifik. Menggunakan Pasangan Nilai Kunci dan Array. Ini adalah konsep yang dijelaskan, pada titik ini layak membaca aturan-aturan khusus di atas.

Komentar (0)

Pendek - JSON adalah cara serialisasi sedemikian rupa, sehingga menjadi kode JavaScript. Ketika dieksekusi (dengan eval atau sebaliknya), kode ini menciptakan dan mengembalikan sebuah objek JavaScript yang berisi data serial. Ini adalah tersedia karena JavaScript memungkinkan sintaks berikut:

var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements
var MyObject = {
    'StringProperty' : 'Value',
    'IntProperty' : 12,
    'ArrayProperty' : [ 1, 2, 3],
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' }
}; // MyObject is now an object with property values set.

Anda dapat menggunakan ini untuk beberapa tujuan. Untuk satu, itu's cara yang nyaman untuk melewatkan data dari server backend untuk kode JavaScript anda. Jadi, ini adalah sering digunakan di AJAX.

Anda juga dapat menggunakannya sebagai standalone serialisasi mekanisme yang lebih sederhana dan tidak memakan banyak ruang kurang dari XML. Banyak perpustakaan yang ada yang memungkinkan anda untuk serialize dan deserialize benda-benda di JSON untuk berbagai bahasa pemrograman.

Komentar (0)

Singkatnya, itu adalah scripting notasi untuk melewati data tentang. Dalam beberapa cara alternatif untuk XML, native mendukung tipe data dasar, array dan array asosiatif (pasangan nama-nilai, yang disebut Objek karena itu adalah apa yang mereka wakili).

Sintaks yang digunakan dalam JavaScript dan JSON sendiri merupakan singkatan dari "JavaScript Object Notation". Namun hal ini telah menjadi portabel dan digunakan dalam bahasa lain juga.

Link yang berguna untuk detail berikut ini:

http://secretgeek.net/json_3mins.asp

Komentar (0)

Format JSON sering digunakan untuk serialisasi dan mentransmisikan data terstruktur melalui koneksi jaringan. Hal ini digunakan terutama untuk mengirimkan data antara server dan aplikasi web, yang melayani sebagai alternatif untuk XML.

Komentar (0)

JSON adalah JavaScript Object Notation. Ini adalah banyak lebih kompak cara transmisi set data di jaringan koneksi dibandingkan dengan XML. Saya sarankan JSON yang akan digunakan dalam setiap AJAX-seperti aplikasi di mana XML sebaliknya akan menjadi "dianjurkan" opsi. Bertele-tele XML akan menambah waktu download dan peningkatan konsumsi bandwidth ($$$). Anda dapat mencapai efek yang sama dengan JSON dan mark-up adalah hampir secara eksklusif didedikasikan untuk data itu sendiri dan bukan struktur yang mendasari.

Komentar (0)

umum jawaban singkatnya adalah: jika anda menggunakan AJAX untuk membuat permintaan data, anda dapat dengan mudah mengirim dan mengembalikan benda-benda seperti JSON string. Ekstensi yang tersedia untuk dukungan Javascript toJSON() panggilan pada semua javascript jenis untuk mengirimkan data ke server dalam permintaan AJAX. AJAX tanggapan dapat kembali benda-benda seperti JSON string yang dapat dikonversi menjadi objek Javascript sederhana eval panggilan, misalnya jika fungsi AJAX someAjaxFunctionCallReturningJson kembali

"{ \"FirstName\" : \"Fred\", \"LastName\" : \"Flintstone\" }"

anda bisa menulis di Javascript

var obj = eval("(" + someAjaxFunctionCallReturningJson().value + ")");
alert(obj.FirstName);
alert(obj.LastName);

JSON juga dapat digunakan untuk layanan web muatan et al, tapi itu benar-benar nyaman bagi hasil AJAX.

  • Update (sepuluh tahun kemudian): Don't melakukan hal ini, menggunakan JSON.mengurai
Komentar (2)

Aku seperti JSON terutama karena itu's jadi terse. Untuk konten web yang dapat gzip, ini isn't tentu masalah besar (maka mengapa xhtml adalah begitu populer). Tapi ada kesempatan di mana ini dapat bermanfaat.

Misalnya, untuk satu proyek saya adalah transmisi informasi yang diperlukan untuk menjadi serial dan ditularkan melalui XMPP. Karena kebanyakan server akan membatasi jumlah data yang dapat anda mengirimkan dalam satu pesan, saya menemukan hal ini membantu untuk menggunakan JSON di atas jelas alternatif, XML.

Sebagai bonus tambahan, jika anda're akrab dengan Python atau Javascript, anda sudah cukup banyak tahu JSON dan dapat ditafsirkan tanpa banyak pelatihan sama sekali.

Komentar (0)

Apa itu JSON?

JavaScript Object Notation (JSON) adalah ringan data interchange format terinspirasi oleh objek literal dari JavaScript.

JSON nilai-nilai yang dapat terdiri dari:

benda-benda (koleksi dari pasangan nama-nilai) array (memerintahkan daftar nilai) string (dalam tanda kutip ganda) angka true, false, atau null

JSON adalah bahasa independen.

JSON dengan PHP?

Setelah PHP Versi 5.2.0, JSON ekstensi decode dan encode fungsi sebagai default.

Json_encode - mengembalikan JSON representasi dari nilai-nilai Json_decode - Decode String JSON Json_last_error - Kembali lalu terjadi kesalahan.

JSON Sintaks dan Aturan?

JSON sintaks adalah berasal dari JavaScript object notation sintaks:

Data dalam pasangan nama/nilai Data yang dipisahkan oleh koma Kurung kurawal memegang benda Kurung memegang array

Komentar (0)

Kita harus melakukan sebuah proyek pada perguruan tinggi dan kita menghadapi masalah yang sangat besar, hal ini disebut Same Origin Policy. Amog hal-hal lain, itu membuat anda XMLHttpRequest metode dari Javascript dapat't membuat permintaan untuk domain selain domain anda di situs ini.

Misalnya anda dapat't membuat permintaan untuk www.otherexample.com jika situs anda adalah pada www.example.com. JSONRequest memungkinkan itu, tetapi anda akan mendapatkan hasil dalam format JSON jika situs tersebut memungkinkan(misalnya memiliki layanan web yang mengembalikan pesan dalam JSON). Itu adalah salah satu masalah di mana anda bisa menggunakan JSON mungkin.

Di sini adalah sesuatu yang praktis: Yahoo JSON

Komentar (0)

Perbedaan antara JSON dan konvensional sintaks akan menjadi sebagai berikut (dalam Javascript)

Konvensional

 function Employee(name, Id, Phone, email){

      this.name = name;
      this.Id = Id;
      this.Phone = Phone;
      this.email = email;
  }

  //access or call it as 

var Emp = new Employee("mike","123","9373849784","mike.Anderson@office.com");

Dengan JSON

jika kita menggunakan JSON kita dapat menentukan dengan cara yang berbeda sebagai

  function Employee(args){

   this.name = args.name;
   this.Id = args.Id;
   this.Phone = args.Phone;
   this.email = args.email;
}

//now access this as...

var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'});

Hal penting yang harus kita ingat adalah bahwa, jika kita harus membangun "Karyawan" kelas atau dengan modal 100 elemen tanpa JSON metode kita harus mengurai segala sesuatu ketika menciptakan kelas. Tapi dengan JSON, kita dapat menentukan benda-benda inline hanya ketika sebuah objek baru untuk kelas didefinisikan.

jadi, ini line di bawah ini adalah cara untuk melakukan hal-hal dengan JSON(hanya cara sederhana untuk menentukan hal-hal)

 var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'});
Komentar (1)

JSON(Javascript object notation) adalah ringan format data untuk pertukaran data/transfer. Dalam pasangan nilai kunci seperti JavaScript. Untuk SISA API yang banyak digunakan untuk transfer data dari server ke klien. Saat ini banyak situs media sosial yang menggunakan ini. Meskipun aku don't melihat ini sebagai kuat sebagai XML dengan hormat dari tipe data. XML memiliki tipe data yang sangat kaya dan XSD. JSON adalah sedikit kurang dalam hal ini.

Untuk jumlah yang sama dari data string JSON akan lebih ringan dibandingkan dengan XML XML memiliki semua yang membuka dan menutup tag, dll...

Komentar (0)

It's sangat sederhana. JSON merupakan singkatan dari Java Script Object Notation. Anggap saja sebagai alternatif untuk menggunakan XML untuk mentransfer data antara komponen-komponen perangkat lunak.

Sebagai contoh, saya baru-baru ini menulis banyak layanan web yang kembali JSON, dan beberapa pengembang Javascript kemudian menulis kode yang disebut pelayanan dan dikonsumsi dengan informasi yang dikembalikan pada format tersebut.

Komentar (0)

Kadang-kadang teknis diberikan di mana tidak ada yang diperlukan, dan sementara banyak dari atas memilih jawaban yang akurat teknis dan spesifik, saya pribadi don't pikir mereka lebih mudah untuk memahami, atau ringkas, seperti apa yang dapat ditemukan di Wikipedia, atau di dokumentasi resmi.

Cara saya suka berpikir tentang JSON adalah persis apa yang itu adalah - bahasa dunia yang berbeda bahasa. Namun, perbedaan antara JSON dan bahasa-bahasa lain adalah bahwa "setiap orang" "dalam" JSON, bersama dengan mereka "bahasa asli."

Menggunakan dunia nyata contoh, let's berpura-pura kita memiliki tiga orang. Satu orang berbicara Igbo sebagai bahasa ibu mereka. Kedua orang yang ingin berinteraksi dengan orang pertama, namun, orang pertama yang berbicara bahasa spanyol sebagai bahasa pertama mereka.

Apa yang bisa kita lakukan?

Untungnya, orang ketiga dalam contoh kita dibesarkan berbicara bahasa inggris, tetapi juga terjadi untuk berbicara kedua ** Igbo dan Yoruba sebagai bahasa kedua, dan dapat bertindak sebagai perantara antara dua individu.

Dalam dunia pemrograman, pertama "orang" adalah Python, kedua "orang" adalah Ruby, dan yang ketiga "orang" adalah JSON, yang hanya begitu terjadi untuk dapat "menerjemahkan" Ruby ke Python dan sebaliknya! Sekarang jelas analogi ini isn't yang sempurna, namun, sebagai seseorang yang bilingual, saya percaya itu's cara yang mudah untuk melihat bagaimana JSON berinteraksi dengan bahasa pemrograman yang lain.

Komentar (0)

Di Jawa konteks, salah satu alasan mengapa JSON mungkin ingin untuk dapat digunakan, adalah bahwa ia menyediakan alternatif yang sangat baik untuk Jawa's Serialisasi framework, yang telah terbukti (secara historis) untuk dapat beberapa cukup serius kerentanan.

Joshua Bloch membahas hal ini secara mendalam di Item 85 "lebih Memilih Alternatif untuk Jawa Serialisasi" (Efektif Jawa 3rd Edition)

Jawa's Serialisasi pada awalnya dimaksudkan untuk menerjemahkan struktur data ke dalam format yang dapat dengan mudah ditransmisikan atau disimpan. JSON memenuhi persyaratan ini, tanpa serius eksploitasi yang disebutkan di atas.

Komentar (0)

Cobalah kode berikut untuk mengurai php respon json: read.php

</script>
<script type="text/javascript">  
$.ajax({
    url:'index.php',
    data:{},
    type:"POST",
    success:function(result) {
        jsondecoded = $.parseJSON(result);
        $.each(jsondecoded, function(index, value) {
            $("#servers").text($("#servers").text() + " " + value.servername);
            console.log(value.start);
            console.log(value.end);
            console.log(value.id);
        });
    },
    statusCode: {
    404: function() {
      alert( "page not found" );
    }
  }
});
</script>

server.php

<?php 
echo '[{"start":"2017-08-29","end":"2017-09-01","id":"22"},{"start":"2017-09-03","end":"2017-09-06","id":"23"}]';
?>
Komentar (1)