Ce este JSON și de ce mi-ar folosi?

Am'am uitat pe wikipedia și am Căutat pe google și citiți documentația oficială, dar încă nu m-am't ajuns la punctul în care am înțeles cu adevărat ce JSON este, și de ce am'd-l folosească.

Am fost construirea de aplicatii folosind PHP, MySQL si Javascript / HTML pentru un timp, și dacă JSON poate face ceva pentru a-mi face viața mai ușoară sau codul meu mai bine sau interfață de utilizator mai bine, apoi m-am'd dori să știu despre el. Poate cineva sa-mi dea o succintă explicație?

Comentarii la întrebare (4)
Soluția

JSON (JavaScript Object Notation) este un ușor de format, care este folosit pentru date schimbând. Este bazat pe un subset al limbajului JavaScript (modul în care obiectele sunt construite în JavaScript). Ca precizat în MDN, unele JavaScript nu este JSON, și unele JSON nu este JavaScript. Un exemplu în cazul în care acest lucru este folosit este serviciilor web răspunsuri. În 'vechi' de zile, servicii web XML folosit ca principal format de date pentru transmiterea de date, dar din moment ce JSON apărut (formatul JSON este specificat în RFC 4627 de către Douglas Crockford), a fost format preferat pentru că este mult mai mult usoare Puteți găsi o mulțime mai multe informații pe pagina oficială JSON web site. JSON este construit pe două structuri:

  • O colecție de perechi nume/valoare. În diferite limbi, acest lucru este realizat ca un obiect, înregistrare, struct, dicționar, tabel hash, o listă de chei, sau un tablou asociativ.
  • O lista ordonata de valori. În cele mai multe limbi, acest lucru este realizat ca o matrice, vector, listă, sau secvență.

    JSON Structura













    Aici este un exemplu de date JSON:

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

În JavaScript JSON

JSON (Javascript) este un șir de caractere! Oamenii de multe ori își asumă toate Javascript obiectele sunt JSON și că JSON este un obiect Javascript. Acest lucru este incorect. În Javascript var x = {x:y} e nu JSON, aceasta este o Javascript object. Cele două nu sunt același lucru. JSON echivalente (reprezentat în limbajul Javascript) ar fi var x = '{"x":"y"}'. x este un obiect de tip string nu un obiect în it's propria dreptate. Pentru a transforma acest lucru într-un cu drepturi depline obiect Javascript trebuie mai întâi să-l analiza, var x = JSON.analiza('{"x":"y"}');, x este acum un obiect, dar acest lucru nu este JSON mai. A se vedea obiect Javascript Vs JSON

Atunci când se lucrează cu JSON și JavaScript, ați putea fi tentați să utilizeze "eval" funcție pentru a evalua rezultatul returnat în apel invers, dar acest lucru nu este recomandat având în vedere că există două caractere (U+2028 & U+2029) valabil în JSON, dar nu în JavaScript (mai mult de acest lucru aici). Prin urmare, trebuie să încercați întotdeauna să folosiți Crockford's script care verifică pentru JSON valid înainte de evaluarea acesteia. Link-ul de la script-ul explicație este găsit aici și aici este o direct link la js fișiere. Toate browser-ul majore în zilele noastre a propria implementare pentru acest lucru. Exemplu privind modul de utilizare a JSON parser (cu json de la codul de mai sus fragment):

//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-ul oferă, de asemenea, o altă metodă foarte utilă, stringify. Această metodă acceptă un obiect JavaScript ca un parametru, și ieșiri întoarce un șir de caractere cu un format JSON. Acest lucru este util pentru atunci când doriți să trimite date înapoi la 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}

Cele de mai sus două metode (analiza " și " stringify) ia, de asemenea, un al doilea parametru, care este o funcție care va fi numit pentru fiecare cheie și valoare la fiecare nivel de rezultatul final, și fiecare valoare va fi înlocuit prin urmare a introdus funcția. (Mai multe despre acest aici) Btw, pentru toți dintre voi care cred că JSON este doar pentru JavaScript, check out acest mesaj așa se explică și confirmă în caz contrar.

Referințe

Comentarii (9)

Conceptul de Explicat - Nici un Cod sau un Jargon Tehnic

Ce este JSON? – Cum ți-am explicat soția meaTM

M -: "este de fapt un mod de a comunica cu cineva în scris....dar cu reguli foarte precise.

Soția: da.......?

M -: În prozaic engleză, regulile sunt destul de largi: la fel ca și cu luptele în cușcă. Nu atât cu JSON. Există multe modalități de a descrie ceva:

• Exemplul 1: familia Noastră are 4 persoane: Tu, eu si 2 copii.

• Exemplul 2: familia Noastră: tu, eu, kid1 și kid2.

• Exemplul 3: Familie: [ ai, mă, kid1, kid2]

• Exemplul 4: avem 4 oameni in familia noastra: mama, tata, kid1 și kid2.

Soția: de Ce nu folosesc limba engleză în loc?

M -: Acestea ar fi, dar amintiți-vă avem de-a face cu calculatoarele. Un calculator este o prostie și nu este de gând să fie în măsură să înțeleagă fraze. Deci trebuie să fie foarte specifice, atunci când computerele sunt implicate în caz contrar, ei a lua confuz. În plus, JSON este o destul de eficient mod de a comunica, astfel încât cele mai multe dintre lucruri irelevante este tăiat, care este destul de mână. Dacă ai vrut să comunice familiei noastre, la un computer, o modalitate de ai putea face acest lucru este ca aceasta:

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

......și care este, practic, JSON. Dar amintiți-vă, TREBUIE să te supui JSON regulile gramaticale. Dacă încălcați aceste reguli, atunci un calculator, pur și simplu nu va înțelege (de exemplu, analiza), ceea ce se scrie.

Soția: Așa cum am scris în Json?

O bună cale ar fi să folosiți un json serialiser - care este o bibliotecă care face munca grea pentru tine.

Sumar

JSON este de fapt un mod de a comunica date cu cineva, cu foarte, foarte norme specifice. Folosind Perechi de valori-Cheie și Tablouri. Acesta este conceptul explicat, în acest moment, este în valoare de lectură normele specifice de mai sus.

Comentarii (0)

În scurt JSON este un mod de a se înseriază într-un asemenea mod, încât devine de cod JavaScript. Atunci când executat (cu eval sau altfel), acest cod creează și returnează un obiect JavaScript care conține datele serializate. Acesta este disponibil pentru JavaScript permite următoarea sintaxă:

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.

Puteți folosi acest lucru pentru mai multe scopuri. Pentru unul, l'e un mod confortabil de a trece de date de pe server backend la cod JavaScript. Astfel, acest lucru este adesea folosit în AJAX.

De asemenea, puteți folosi ca un independent mecanism de serializare, care este mai simplu și ocupă mai puțin spațiu decât XML. Multe biblioteci există, care permite de a serializa și deserialize obiecte în JSON pentru diverse limbaje de programare.

Comentarii (0)

Pe scurt, este o scripting notație pentru a trece de date despre. În unele privințe o alternativă la XML, nativ sprijinirea tipuri de date de bază, matrice și tablouri asociative (perechi nume-valoare, numite Obiecte, pentru că asta este ceea ce reprezintă).

Sintaxa este cea utilizată în JavaScript și JSON în sine reprezintă "JavaScript Object Notation". Cu toate acestea a devenit portabil și este folosit în alte limbi prea.

Un link util pentru detaliu este aici:

http://secretgeek.net/json_3mins.asp

Comentarii (0)

Formatul JSON este adesea folosit pentru serializarea și transmiterea de date structurate pe o conexiune de rețea. Acesta este utilizat în principal pentru a transmite date între un server web și de aplicații, care servește ca o alternativă la XML.

Comentarii (0)

JSON este JavaScript Object Notation. Este mult mai compact mod de transmitere seturi de date în întreaga rețea de conexiuni comparativ cu XML. Sugerez JSON fi folosit în orice AJAX-ca aplicații în cazul în care XML, altfel, ar fi "recomandat" opțiune. Prolixitatea de XML va adauga la timpul de descărcare și a crescut consumul de lățime de bandă ($$$). Puteți realiza același efect cu JSON și marca-up este aproape exclusiv dedicat de date în sine, și nu la structura de bază.

Comentarii (0)

comune răspunsul scurt este: dacă se utilizează AJAX pentru a face cererile de date, puteți trimite cu ușurință și de a reveni obiecte JSON siruri de caractere. Extensii disponibile pentru suport Javascript toJSON() invită toate javascript tipuri pentru trimiterea de date la server într-o cerere AJAX. AJAX răspunsurile pot reveni obiecte JSON siruri de caractere care pot fi transformate în obiecte Javascript printr-o simplă evaluare a apela, de exemplu, dacă AJAX funcția someAjaxFunctionCallReturningJson revenit

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

ai putea scrie în Javascript

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

JSON poate fi de asemenea utilizat pentru servicii web utile et al, dar este foarte convenabil pentru AJAX rezultate.

  • Actualizare (zece ani mai târziu): Don't face acest lucru, utilizați JSON.analiza
Comentarii (2)

Îmi place JSON, în principal pentru că's atât de concis. Pentru conținut web care poate fi comprimat cu gzip, e't neapărat o afacere mare (prin urmare, de ce xhtml este atât de popular). Dar există și ocazii în care acest lucru poate fi benefic.

De exemplu, pentru un proiect am fost de transmitere a informațiilor care trebuia să fie serializat și transmise prin intermediul XMPP. Deoarece cele mai multe servere va limita cantitatea de date pe care le poate transmite într-un singur mesaj, am găsit util să se folosească JSON peste alternativă evidentă, XML.

Ca un bonus, dacă te're familiarizat cu Python sau Javascript, deja destul de mult știi JSON și poate interpreta fără multă pregătire, la toate.

Comentarii (0)

Ce este JSON?

JavaScript Object Notation (JSON) este un ușor de date-interchange format inspirat de literali obiect de JavaScript.

JSON valori pot consta din:

obiecte (colecții de perechi nume-valoare) tablouri (ordonate liste de valori) siruri de caractere (între ghilimele) numere true, false sau null

JSON este independent de limbă.

JSON PHP?

După Versiunea PHP 5.2.0, JSON extensia este decodează și codifică funcționalități ca default.

Json_encode - returnează JSON reprezentare a valorilor Json_decode - Decodează JSON String Json_last_error - Returnează ultima error occured.

Sintaxa JSON și Reguli?

Sintaxa JSON este derivat din JavaScript object notation sintaxa:

De date este în perechi nume/valoare Datele sunt separate prin virgule Acolade dețină obiecte Paranteze pătrate deține tablouri

Comentarii (0)

Trebuie sa fac un proiect la facultate și ne-am confruntat cu o problemă foarte mare, este numit Aceeași Origine Comună. Amog alte lucruri, se face că XMLHttpRequest metoda de Javascript poate't face cereri pentru alte domenii decât domeniul pe care site-ul este pe.

De exemplu, puteți't face cerere la www.otherexample.com dacă site-ul este pe www.example.com. JSONRequest permite acest lucru, dar veți obține rezultatul în format JSON cazul în care site-ul permite asta(de exemplu are un serviciu web care returnează mesaje în JSON). Asta este o problemă în cazul în care ai putea folosi JSON poate.

Aici este ceva practic: Yahoo JSON

Comentarii (0)

Diferența între JSON și convenționale sintaxa ar fi după cum urmează (în Javascript)

Convenționale

 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");

Cu JSON

dacă vom folosi JSON putem defini în mod diferit ca

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

Cel mai important lucru de care trebuie să vă amintiți este că, dacă avem de a construi "Angajat" clasă sau modal cu 100 de elemente fără JSON metodă avem de a analiza totul, atunci când crearea de clasa. Dar cu JSON putem defini obiecte inline numai atunci când un nou obiect de clasă este definită.

deci, această linie de mai jos este modul de a face lucrurile cu JSON(doar un mod simplu de a defini lucrurile)

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

JSON(Javascript object notation) este o greutate de lumină format de date pentru schimbul de date/transfer. Sale în pereche valoare-cheie ca JavaScript este. Pentru REST API sale utilizat pe scară largă pentru transferul de date de la server la client. În zilele noastre, multe dintre site-urile de socializare sunt, folosind acest lucru. Deși nu - 't vedea acest lucru la fel de robust ca XML cu respect de tipuri de date. XML are foarte bogat tipuri de date și XSD. JSON este cam lipsit de acest lucru.

Pentru aceeași cantitate de date șir JSON va fi mai usor compara cu XML ca XML are toate că, de deschidere și închidere tag-uri, etc...

Comentarii (0)

L's foarte simplu. JSON standuri pentru Script Java Object Notation. Cred că de ea ca o alternativă la utilizarea XML pentru transferul datelor între componentele software.

De exemplu, recent am scris o grămadă de servicii web, care a revenit JSON, iar unii dezvoltatori Javascript apoi a scris codul care a sunat la serviciile și consumate informațiile returnate în acest format.

Comentarii (0)

Uneori tehnicitate este dat în cazul în care nu este necesar, și în timp ce mulți dintre partea de sus a votat răspunsurile sunt corect tehnice și specifice, eu personal nu't cred că sunt mai ușor de înțeles, sau succint, ca ceea ce poate fi găsit pe Wikipedia, sau în documentația oficială.

Cum îmi place să cred că JSON este exact ceea ce este - o limbă într-o lume de limbi diferite. Cu toate acestea, diferența între JSON și alte limbi este că "toata lumea" "vorbește" JSON, împreună cu lor "limba maternă."

Folosind un exemplu real, las's ne prefacem că avem trei oameni. O persoană vorbește Igbo ca limba lor maternă. Cea de-a doua persoană ar dori să interacționeze cu prima persoana, cu toate acestea, prima persoană care vorbește Yoruba ca prima lor limbă.

Ce putem face?

Din fericire, cea de-a treia persoana din exemplul nostru a crescut vorbind limba engleză, dar, de asemenea, se întâmplă să vorbească ambele Igbo și Yoruba ca a doua limbă, și deci poate acționa ca un intermediar între primele două persoane.

În lumea de programare, primul "a" este Python, cea de-a doua "a" este Ruby, și cea de-a treia "a" este JSON, care doar se întâmplă să fie capabil de a "traduc" Ruby în Python și vice-versa! Acum este evident că această analogie nu este't unul perfect, dar, ca cineva care este bilingv, cred că's o modalitate ușoară de a uita-te la cum JSON interacționează cu alte limbaje de programare.

Comentarii (0)

În Java context, un motiv pentru care JSON ar putea dori pentru a fi utilizate, este că oferă o alternativă foarte bună pentru Java's Serialization-cadru, care a fost demonstrat (istoric) să fie supuse unele destul de grave vulnerabilități.

Joshua Bloch discută despre asta în detaliu în Articol 85 "Preferă Alternative la Serializare Java" (în vigoare de Java 3-a Ediție)

Java's Serialization a fost inițial destinat pentru a traduce structuri de date într-un format care poate fi ușor transmise sau stocate. JSON îndeplinește această cerință, fără grave faptele menționate mai sus.

Comentarii (0)

Încercați următorul cod pentru a analiza php json răspuns: 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"}]';
?>
Comentarii (1)