Mai mult
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?
524
16
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 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:
Î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 fivar 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 JSONAtunci 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):
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: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
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:
......ș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
Î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ă:
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.
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
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.
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ă.
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
ai putea scrie în Javascript
JSON poate fi de asemenea utilizat pentru servicii web utile et al, dar este foarte convenabil pentru AJAX rezultate.
Î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.
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
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
Diferența între JSON și convenționale sintaxa ar fi după cum urmează (în Javascript)
Convenționale
Cu JSON
dacă vom folosi JSON putem defini în mod diferit ca
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)
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...
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.
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.
Î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.
Încercați următorul cod pentru a analiza php json răspuns: read.php
server.php