Come configurare smartphone e PC. Portale informativo

variabile json. Nozioni di base su JSON

Composto da coppie attributo-valore. È il formato dati più comune utilizzato per la comunicazione asincrona tra il browser e il server, sostituendo in gran parte XML (utilizzando AJAX).

JSON è un formato dati indipendente dalla lingua derivato da JavaScript. Dal 2017, molti linguaggi di programmazione utilizzano il codice per generare e analizzare dati solo in esso. I nomi dei file JSON utilizzano l'estensione .json.

Storia della creazione

Il formato JSON è stato originariamente sviluppato da Douglas Crockford all'inizio degli anni 2000 e successivamente è stato definito da due standard concorrenti (RFC 7159 e ECMA-404) nel 2013. Lo standard ECMA descrive solo la sintassi valida, mentre RFC copre alcuni aspetti fondamentali della sicurezza e dell'interoperabilità.

Inoltre esiste uno standard chiamato RFC 7493 che definisce profilo limitato, noto come I-JSON (abbreviazione di "Internet JSON"). Cerca di superare alcuni problemi di interoperabilità. Ciascuno di questi documenti è un documento JSON valido.

L'esigenza di creare questo formato è nata dalla necessità di un vero e proprio protocollo di comunicazione tra il server e il browser, effettuato in tempo reale senza l'utilizzo di plugin (come Flash o applet Java).

Sviluppo e applicazione

Come già notato, Douglas Crockford, essendo il creatore della società StateSoftware, ha identificato e reso popolare per primo il formato JSON. Successivamente, i cofondatori hanno deciso di creare un sistema utilizzando caratteristiche standard browser e ha fornito un livello di astrazione agli sviluppatori per creare applicazioni con una connessione full-duplex continua a un server web. Allo stesso tempo è diventato possibile mantenere aperti due collegamenti HTTP ed elaborarli fino al normale orario di funzionamento del browser se non veniva scambiato alcun dato. I cofondatori hanno tenuto una discussione per tavola rotonda e ha votato per chiamare il formato dati JSML o JSON e anche per determinare il tipo di licenza con cui nuovo sviluppo diventerà disponibile. Il formato è attualmente open source.

Uso pratico

Il sito web JSON.org è stato lanciato nel 2002. Nel dicembre 2005, Yahoo! ha iniziato a offrire alcuni dei suoi servizi web in questo formato. Google ha iniziato a utilizzare i feed JSON per il suo protocollo web GData solo nel dicembre 2006.

Il formato file JSON era originariamente previsto ed era comunemente utilizzato insieme a un sottoinsieme del linguaggio di scripting JavaScript (in particolare Standard ECMA-262 3a edizione-dicembre). Tuttavia, questo è un formato indipendente dalla lingua dei dati. Il codice per l'analisi e la generazione di dati JSON è disponibile in molti linguaggi di programmazione. Il sito Web JSON elenca tutte le librerie.

Sebbene JSON online sia stato originariamente promosso e considerato un sottoinsieme rigoroso di JavaScript ed ECMAScript, periodicamente consente alcuni caratteri senza escape nelle stringhe che non sono consentiti nelle stringhe JavaScript ed ECMAScript.

Lo stesso JSON è diventato standard internazionale ECMA nel 2013 come standard ECMA-404, utilizzato come riferimento nella RFC 7158 dello stesso anno. Nel 2014 RFC 7159 è diventato il riferimento principale per l'utilizzo di JSON su Internet (ad esempio applicazione MIME/json).

Tipi di dati, sintassi ed esempio

I principali tipi di dati JSON sono:

  • Numero: numero decimale con un segno, che può contenere parte frazionaria e può utilizzare la notazione esponenziale E, ma non può includere non numeri (come NaN). Il formato non distingue tra numeri interi e numeri in virgola mobile. JavaScript utilizza il formato in virgola mobile a doppia precisione per tutti i suoi valori numerici, ma altri linguaggi che implementano JSON potrebbero codificarli in modo diverso.

  • Stringa: sequenza di zero o grande Caratteri Unicode. Le stringhe sono delimitate da virgolette doppie e supportano la sintassi della barra rovesciata.
  • Letterali: qualsiasi tra vero o falso.
  • Matrice: un elenco ordinato di zero o più valori, ognuno dei quali può essere di qualsiasi tipo. Utilizzo degli array parentesi quadre con virgole.
  • Oggetto: una raccolta non ordinata di coppie nome/valore, dove i nomi (chiamati anche chiavi) sono stringhe. Poiché gli oggetti sono destinati a rappresentare array associativi, è consigliabile (sebbene non obbligatorio) che ciascuna chiave sia univoca al suo interno. Gli oggetti sono separati da parentesi graffe e utilizzano virgole per separare ciascuna coppia, mentre all'interno di ciascuno un carattere due punti separa la chiave o il nome dal suo valore.
  • Nullo: Valore vuoto, usando la parola null.

È consentito uno spazio bianco limitato che può essere posizionato attorno o tra elementi sintattici (valori e punteggiatura, ma non all'interno di un valore stringa). A questo scopo solo quattro personaggi speciali Sono considerati spazi: spazio, tabulazione orizzontale, fine riga e barra. In particolare, non è necessario che il byte order mark venga generato dall'implementazione corrispondente (sebbene possa essere accettato durante l'analisi di JSON). Richiedi a Formato JSON non fornisce la sintassi per i commenti.

Le prime versioni (come quelle specificate nella RFC 4627) richiedevano che un documento valido fosse costituito solo da un oggetto o da un tipo di array, che poteva contenere altri tipi al suo interno. Questo formato JSON, di cui è possibile trovare un esempio nelle pagine Web precedenti, non è attualmente utilizzato.

Problemi di portabilità dei dati

Anche se Douglas Crockford originariamente sosteneva che JSON fosse un sottoinsieme rigoroso di JavaScript, le sue specifiche in realtà consentono la creazione di documenti illeggibili da JavaScript. In particolare, JSON consente ai valori di essere Stringhe Unicode U+2028 LINE SEPARATOR e U+2029 PARAGRAPH SEPARATOR apparivano senza caratteri di escape nelle righe tra virgolette, ma JavaScript no. Questa è una conseguenza del fatto che JSON non consente solo i "caratteri di controllo". Per la massima compatibilità, questi caratteri dovrebbero essere preceduti da una barra rovesciata. Questa sottigliezza è importante durante la creazione di JSONP.

Formato JSON: come aprirlo?

I documenti JSON possono essere codificati in UTF-8, UTF-16 o UTF-32, la codifica predefinita è UTF-8. Questi standard supportano set completo Caratteri "Unicode", compresi i caratteri al di fuori del piano multilingue principale (da U+10000 a U+10FFFF). Tuttavia, se sfuggiti, questi caratteri devono essere scritti utilizzando coppie di surrogati UTF-16, un dettaglio mancato da alcuni parser di formato JSON. Come aprire e come verrà letto un file del genere?

I numeri in questo formato sono agnostici per quanto riguarda la loro rappresentazione nei linguaggi di programmazione. Non c'è differenza tra un valore intero e un valore in virgola mobile: alcune implementazioni potrebbero considerare 42, 42.0 e 4.2E + 1 come lo stesso numero, mentre altre no. Inoltre, non sono previsti requisiti relativi a problemi quali overflow, underflow, perdita di precisione o arrotondamento. Inoltre, il formato JSON non dice nulla sulla gestione dei valori null con segno, indipendentemente dal fatto che 0.0 sia diverso da -0.0. La maggior parte delle implementazioni che utilizzano lo standard a virgola mobile IEEE 754, incluso JavaScript, conservano gli zeri con segno, ma non tutte le implementazioni JSON possono farlo.

Utilizzo in JavaScript

Poiché il formato JSON è derivato da JavaScript e la sua sintassi è (principalmente) un sottoinsieme del linguaggio, puoi utilizzare la funzione JavaScripteval per analizzare i dati JSON. A causa del problema con l'analisi dei terminatori di stringa Unicode discusso nella sezione precedente, la funzione eval deve eseguire la loro sostituzione.

Ciò non è sicuro a meno che la stringa non sia convalidata correttamente. Dovresti invece utilizzare una libreria parser JSON o il supporto JavaScript per leggere e scrivere JSON.

Un parser correttamente implementato accetterà solo il formato JSON valido come descritto nel sistema, impedendo l'esecuzione involontaria di codice potenzialmente dannoso.

Dal 2010, i browser Web come Firefox e Internet Explorer includono il supporto per l'analisi e l'esportazione in formato JSON.

Tipi di dati nativi non supportati

La sintassi JavaScript definisce diversi tipi di dati nativi che non sono inclusi nello standard JSON: Map, Set, Date, Error, Espressione regolare, Funzione e alcuni altri. Questi tipi Dati JavaScript deve essere rappresentato in qualche altro formato, con entrambi i programmi che concordano su come convertire tra i tipi. Oggi esistono alcuni standard de facto, come la conversione di una data in una stringa, ma nessuno di essi è generalmente accettato. Altre lingue potrebbero averlo insieme vario tipi nativi che devono essere serializzati con attenzione per gestire questo tipo di conversione.

Schema JSON

Lo schema serve a definire la struttura dei dati JSON per la convalida, la documentazione e la gestione dell'interazione. Fornisce una sorta di contratto per i dati richiesti dall'applicazione e un modo per modificarli.

Lo schema si basa sui concetti di XML Schema (XSD), ma è proprietario. Come XSD, le stesse funzionalità di serializzazione/deserializzazione vengono utilizzate sia per lo schema che per i dati.

Schema è un progetto Internet attualmente nella versione 5 (rilasciato il 13 ottobre 2016). Sono disponibili diversi validatori per lingue differenti programmazione, ciascuno con un diverso livello di conformità. Estensione standard non ci sono file, ma alcuni esperti suggeriscono assert.schema.json.

Tipo MIME

Il tipo MIME ufficiale per il testo JSON è "application/json". Sebbene la maggior parte delle implementazioni moderne abbiano adottato il tipo MIME ufficiale, molte applicazioni continuano a fornire supporto legacy per altri tipi MIME. Molti fornitori di servizi, browser, server, applicazioni Web, librerie, framework e API utilizzano, si aspettano o riconoscono un tipo MIME il cui contenuto appare come "text/json" o "text/javascript". Esempi notevoli includono Ricerca Google API, Yahoo!, Flickr, API di Facebook, DojoToolkit 0.4 e così via.

JSON-RPC

JSON-RPC è un protocollo RPC (Remote Procedure Call) basato su JSON, progettato come sostituto di XML-RPC o SOAP. È un protocollo semplice che definisce solo pochi tipi di dati e comandi. Consente al sistema di inviare notifiche (informazioni al server che non richiedono una risposta) e più chiamate al server a cui è possibile rispondere fuori servizio.

A.J.A.J.

JavaScript asincrono e JSON (o AJAJ) si riferiscono alla stessa metodologia di pagina Web dinamica di Ajax, ma invece di XML, JSON è il formato dati principale. AJAJ è una tecnologia di sviluppo web che consente a una pagina web di richiedere nuovi dati dopo essere stata caricata nel browser. Di solito li visualizza dal server in risposta alle azioni dell'utente su quella pagina. Ad esempio, ciò che l'utente digita in un campo di ricerca viene quindi inviato dal codice client al server, che risponde immediatamente con un elenco a discesa di elementi del database corrispondenti.

Problemi di sicurezza

Il testo in formato JSON è definito come oggetto di serializzazione dei dati. Tuttavia, la sua progettazione, come sottoinsieme sciolto del linguaggio di scripting JavaScript, crea diversi problemi di sicurezza. Si concentrano sull'utilizzo dell'interprete JavaScript per eseguire dinamicamente il testo JSON come JavaScript in linea. Ciò espone il programma a script errati o dannosi. Questo è un problema serio quando si lavora con dati recuperati da Internet.

Questo metodo semplice e popolare, ma rischioso, utilizza la compatibilità con la funzione JavaScripteval.

Alcuni sviluppatori credono erroneamente che il testo JSON sia anche un codice JavaScript sintatticamente simile, sebbene ciò sia vero solo in parte. Pertanto, si ritiene che un modo semplice per un programma JavaScript di analizzare i dati in questo formato sia utilizzare la funzione JavaScripteval incorporata, progettata per valutare le espressioni JavaScript. Invece di utilizzare un parser specifico, viene quindi utilizzato il parser stesso per eseguire i dati JSON, creando oggetti JavaScript naturali. Tuttavia, questo metodo è rischioso se esiste la possibilità che i dati JSON contengano codice "JavaScript" arbitrario, che verrebbe quindi eseguito allo stesso modo. A meno che non vengano adottate misure per convalidare prima i dati, il metodo eval è suscettibile a vulnerabilità di sicurezza quando i dati e l'intero ambiente JavaScript non sono sotto il controllo di un'unica fonte attendibile.

Ad esempio, se i dati non vengono verificati, sono soggetti ad attacchi malware. Codice JavaScript. Tali violazioni possono anche creare il rischio di furto di dati, frodi nell’autenticazione e altri potenziali usi impropri di dati e risorse.

Così, nuova caratteristica JSON.parse è stato progettato come alternativa più sicura a eval. È specificamente progettato per elaborare i dati JSON, non JavaScript. Inizialmente era previsto che fosse incluso nella quarta edizione dello standard ECMAScript, ma ciò non è avvenuto. È stato aggiunto per la prima volta nella versione 5 ed è ora supportato dai principali browser.

JSON(Notazione oggetto JavaScript - rappresentazione Oggetti JavaScript) – formato leggero rappresentazione dei dati basata su un sottoinsieme della sintassi JavaScript, più precisamente su letterali array e oggetti. JSON è un'alternativa ai formati tradizionali ( testo semplice o XML), che vengono utilizzati durante lo scambio di dati tra il server e il client. A differenza dei linguaggi XML e compatibili con XML, che richiedono analisi, le definizioni JSON possono essere semplicemente incluse in Script JavaScript. Il formato JSON è stato proposto dal programmatore Douglas Crockford.

Forse sto andando troppo oltre, ma per comprendere veramente JSON, dobbiamo prima comprendere (ricordare) la sintassi di array e oggetti nella notazione letterale JavaScript.

Array come valori letterali
Un array in JavaScript può essere definito utilizzando il costruttore Array, in questo modo:

Var aData = new Array("string", true, 43, null);

In JavaScript, gli array non sono tipizzati, quindi puoi archiviarli Vari tipi dati. Nell'esempio, l'array contiene una stringa, un valore booleano, un numero e un valore nullo.

Un array, descritto come letterale, può essere definito utilizzando parentesi quadre, all'interno dei valori degli elementi dell'array, separati da virgole. Ecco come apparirebbe lo stesso array, ma in notazione letterale:

Var aData = ["stringa", vero, 43, null];

Parlare a elemento separato l'array può essere specificato specificando il nome dell'array e il numero dell'elemento:

Avviso(aData); avviso(aData);

Oggetti come letterali
Gli oggetti in JavaScript vengono definiti utilizzando il costruttore Object, in questo modo:

Var oAuto = nuovo Oggetto(); oAuto.azienda = "Audi"; oAuto.modello = "A6"; oAnno.auto = 2008; oPrezzo.auto = 78000;

Lo stesso codice, ma in notazione letterale sarà simile a questo:

Var oAuto = ( "azienda":"Audi", "modello":"A6", "anno":2008, "prezzo":78000 );

Questo codice crea un oggetto con le proprietà azienda, modello, anno e prezzo ed è possibile accedervi in ​​questo modo:

Avviso(oAuto.modello); avviso(oAuto.anno);

ma puoi anche utilizzare la sintassi dell'array accedendo alle proprietà di un oggetto in questo modo:

Avviso(oAuto["modello"]); alert(oAuto["anno"]);

Nella notazione letterale, le descrizioni di array e oggetti possono essere annidate l'una nell'altra, creando così oggetto array O serie di oggetti. Guarda questo codice:

Var aAuto = [ ( "azienda":"BMW", "modello":"X5", "anno":2007, "prezzo":99000 ), ( "azienda":"Audi", "modello": "A6" , "anno":2008, "prezzo":78000 ), ( "azienda":"Volkswagen", "modello":"Touareg 7L", "anno":2006, "prezzo":45000 )];

Abbiamo creato un array aAuto, che contiene tre oggetti. Combinando la sintassi per l'accesso agli array con la sintassi per l'accesso agli oggetti, proviamo a ottenere l'anno di produzione della seconda vettura:

Avviso(aAuto.anno); // ottieni 2008

Puoi fare il contrario e descrivere un oggetto array:

Var oAuto = ( "azienda":["BMW", "Audi", "Volkswagen"], "modello":["X5", "A6", "Touareg 7L"], "anno":, "prezzo": );

in questo caso accediamo prima all'oggetto e poi all'array al suo interno:

Avviso(oAuto.anno); // ottieni 2008

Questa è una prefazione davvero lunga, ma ora sarà molto più chiaro cosa c'entra tutto questo JSON

JSON– una combinazione di array e oggetti ed è destinato esclusivamente alla memorizzazione di dati. Di conseguenza, JSON non può avere variabili e non consente alcuna operazione su di esse. Proviamo a scrivere l'esempio precedente utilizzando la sintassi JSON:

( "azienda":["BMW", "Audi", "Volkswagen"], "modello":["X5", "A6", "Touareg 7L"], "anno":, "prezzo": )

Nota, che mancavano il nome della variabile e la virgola. Il trasferimento di un tale oggetto utilizzando il protocollo HTTP sarà molto veloce, poiché contiene un minimo di caratteri. Dopo aver ricevuto tali dati dal lato client e averli scritti in una variabile (ad esempio sData), riceviamo una stringa di informazioni.
Nota: esattamente una stringa e non un oggetto o un oggetto con array annidati al suo interno. Converti una stringa in un oggetto utilizzando la funzione valutazione().

Var oAuto = eval("(" + sData + ")");

Di conseguenza, otterrai l'oggetto che abbiamo descritto appena sopra.

Vantaggi di JSON rispetto a XML
Allora qual è esattamente il vantaggio di JSON rispetto a XML?

Qui stiamo parlando esclusivamente sui vantaggi e sugli svantaggi solo dal punto di vista dell'organizzazione dello scambio di dati su Internet.

Il fatto è che linguaggio XML risulta essere molto ridondante rispetto a JSON. Assicuriamoci di questo a semplice esempio. Presenteremo gli stessi dati in formato XML e in formato JSON.

BMW X5 2007 99000 Audi A6 2008 78000 Volkswagen Tuareg 7L 2006 45000

Ecco come appare in formato XML e di seguito in formato JSON:

( "generale": ( "auto":[ ( "azienda":"BMW", "modello":"X5", "anno":2007, "prezzo":99000 ), ( "azienda":"Audi", "modello":"A6", "anno":2008, "prezzo":78000 ), ( "azienda":"Volkswagen", "modello":"Touareg 7L", "anno":2006, "prezzo":45000 )])))

Quando si utilizza il formato JSON, il guadagno sarà di 42 byte e senza spazi sarà di 86 byte. E se ricordiamo anche che i dati in formato JSON non richiedono un'ulteriore analisi da parte del client, il vantaggio di JSON rispetto a XML in termini di trasferimento dei dati dal server al client diventa evidente...

JSON (JavaScript Object Notation) è un formato di trasferimento dati. Come suggerisce il nome, il formato è basato sulla lingua Programmazione JavaScript, tuttavia è disponibile anche in altri linguaggi (Python, Ruby, PHP, Java).

JSON utilizza l'estensione .json. Se utilizzata in altri formati di file (come .html), la stringa JSON viene racchiusa tra virgolette o assegnata a una variabile. Questo formato viene facilmente trasferito tra il server Web e il client o il browser.

JSON leggero e di facile comprensione – ottima alternativa XML.

Questa guida ti introdurrà ai vantaggi, ai servizi, struttura generale e la sintassi JSON.

Sintassi e struttura JSON

Un oggetto JSON è sotto forma di valore-chiave e solitamente è scritto tra parentesi graffe. Quando si lavora con JSON, tutti gli oggetti vengono archiviati in un file .json, ma possono anche esistere come oggetti separati nel contesto del programma.

L'oggetto JSON è simile al seguente:

"nome": "Giovanni",
"cognome": "Smith",
"località": "Londra",
"online": vero,
"seguaci": 987

Questo è un esempio molto semplice. Un oggetto JSON può contenere molte righe.

Come puoi vedere, un oggetto è costituito da coppie chiave-valore racchiuse tra parentesi graffe. La maggior parte dei dati in JSON sono scritti come oggetti.

Tra la chiave e il valore vengono inseriti i due punti. Dopo ogni coppia devi mettere una virgola. Il risultato è:

"chiave" : "valore", "chiave" : "valore", "chiave" : "valore"

La chiave JSON è sulla sinistra. La chiave deve essere inserita virgolette. Qualsiasi stringa valida può essere utilizzata come chiave. All'interno di un oggetto, tutte le chiavi devono essere univoche. La chiave può contenere uno spazio (“nome”), ma la programmazione potrebbe avere problemi ad accedere a tale chiave. Pertanto, al posto dello spazio, è meglio utilizzare il carattere di sottolineatura (“nome”).

I valori JSON si trovano sul lato destro della colonna. Qualsiasi tipo di dati semplice può essere utilizzato come valore:

  • stringhe
  • Numeri
  • Oggetti
  • Array
  • Dati booleani (vero o falso)

I valori possono anche essere rappresentati da tipi di dati complessi (ad esempio oggetti o array JSON).

JSON supporta la sintassi individuale per ciascuno dei tipi di dati sopra elencati: se il valore è rappresentato da una stringa, verrà racchiuso tra virgolette, ma se è un numero, non lo farà.

In genere, i dati nei file .json vengono scritti in una colonna, ma JSON può anche essere scritto in una riga:

( "nome" : "Giovanni", "cognome" : "Smith", "online" : vero, )

Questo è il modo in cui i dati JSON vengono generalmente scritti su altri tipi di file.

Scrivendo dati JSON in una colonna, migliori la leggibilità del file (soprattutto se nel file sono presenti molti dati). JSON ignora gli spazi tra le colonne, quindi puoi utilizzarli per dividere i dati in un numero gestibile di colonne.

"nome": "Giovanni",
"cognome": "Smith",
"in linea": vero

Nota: gli oggetti JSON sono molto simili a Oggetti JavaScript, ma non hanno lo stesso formato. Ad esempio, puoi utilizzare le funzioni in JavaScript, ma non in JSON.

Il vantaggio principale di JSON è che i dati in questo formato sono supportati da molti linguaggi di programmazione popolari, quindi possono essere trasferiti rapidamente.

Ora hai familiarità con la sintassi JSON di base. Ma i file JSON possono essere complessi, struttura gerarchica, che include array e oggetti nidificati.

Tipi complessi in JSON

JSON può memorizzare oggetti e array nidificati, che verranno passati come valore della chiave loro assegnata.

Oggetti nidificati

Di seguito troverai un esempio: il file users.json, che contiene i dati dell'utente. Per ogni utente

(“john”, “jesse”, “drew”, “jamie”) viene passato come valore un oggetto annidato che, a sua volta, è costituito anche da chiavi e valori.

Nota: il primo oggetto JSON nidificato è evidenziato in rosso.

"John" :(
"nome utente": "Giovanni",
"località": "Londra",
"online": vero,
"seguaci": 987

"Jesse" :(
"nome utente": "Jesse",
"località": "Washington",
"online": falso,
"seguaci": 432

"ha disegnato" :(
"nome utente": "Drew",
"località": "Parigi",
"online": falso,
"seguaci": 321

"Jamie" :(
"nome utente": "Jamie",
"località": "Berlino",
"online": vero,
"seguaci": 654

Tieni presente che le parentesi graffe vengono utilizzate sia nell'oggetto nidificato che nell'oggetto principale. Le virgole negli oggetti nidificati vengono utilizzate allo stesso modo di quelli normali.

Array nidificati

I dati possono essere racchiusi in JSON utilizzando Array JavaScript, che verranno passati come valori. JavaScript utilizza parentesi quadre () all'inizio e alla fine di un array. Un array è una raccolta ordinata di dati che può contenere diversi tipi di dati.

L'array viene utilizzato per trasmettere grande quantità dati che possono essere raggruppati. Ad esempio, proviamo a registrare i dati dell'utente.

{
"nome": "Giovanni",
"cognome": "Smith",
"località": "Londra",
"siti web" : [

"descrizione" : "lavoro",
"URL": "https://www.johnsmithsite.com/"

},
{

"descrizione" : "tutorial",
"URL": "https://www.johnsmithsite.com/tutorials"

"social_media" : [

"descrizione": "twitter",
"link": "https://twitter.com/johnsmith"

"descrizione": "facebook",
"link": "https://www.facebook.com/johnsmith"

"descrizione": "github",
"collegamento": "https://github.com/johnsmith"

Alle chiavi “websites” e “social_media” vengono assegnati array come valori, che vengono inseriti tra parentesi quadre.

Utilizzando array e oggetti nidificati, è possibile creare una gerarchia di dati complessa.

JSON o XML?

XML (eXtensible Markup Language) consente di archiviare dati in un formato facilmente comprensibile per esseri umani e macchine. Formato XML supportato grande quantità linguaggi di programmazione.

XML e JSON hanno molto in comune. Tuttavia, XML richiede molto più testo, il che significa che tali file sono più grandi e più difficili da leggere e scrivere. Inoltre, XML viene elaborato solo utilizzando un interprete XML, mentre JSON può essere elaborato utilizzando una semplice funzione. A differenza di JSON, XML non può archiviare array.

Confrontiamo due file: contengono gli stessi dati, ma il primo è scritto in formato XML e il secondo in JSON.

utenti.xml

John Londra

Jesse Washington

Ha disegnato Parigi

Jamie Berlino

utenti.json
("utenti": [

("nome utente": "John", "località": "Londra"),
("nome utente": "Jesse", "località": "Washington"),
("nome utente": "Drew", "località": "Parigi"),
("nome utente": "JamieMantisShrimp", "località": "Berlino")

JSON è un formato molto compatto e non richiede tanti tag quanto XML. Inoltre, XML, a differenza di JSON, non supporta gli array.

Se hai familiarità con l'HTML, noterai che il formato XML gli è molto simile (in particolare i tag). JSON è più semplice, richiede meno testo ed è più facile da usare, ad esempio, nelle applicazioni AJAX.

Naturalmente il formato dovrà essere scelto in base alle esigenze dell'applicazione.

Strumenti per JSON

JSON è comunemente utilizzato in JavaScript, ma il formato è ampiamente utilizzato in altri linguaggi di programmazione.

Maggiori informazioni sulla compatibilità e sull'elaborazione JSON possono essere trovate sul sito web del progetto e sulla libreria jQuery.

È raro scrivere JSON da zero. In genere, i dati vengono caricati dall'origine o convertiti in JSON. Puoi convertire dati CSV o delimitati da tabulazioni in JSON utilizzando strumento aperto Sig. Convertitore di dati. Per convertire XML in JSON e viceversa, utilizzare utilities-online.info. Quando si lavora con strumenti automatici assicurati di controllare il risultato.

I file JSON (compresi i dati convertiti) possono essere controllati utilizzando il servizio JSONLint. Per testare JSON in un contesto di sviluppo web, fare riferimento a JSFiddle.

Conclusione

JSON è un formato dati semplice e leggero. I file JSON sono facili da trasferire, archiviare e utilizzare.

Oggi JSON viene spesso utilizzato nelle API.

In questo articolo voglio parlare del formato di scambio dati di testo - JSON, e in particolare di come lavorare con questo formato in PHP.

JSON è un formato dati di testo compatto. Può essere utilizzato sia nei servizi di trasmissione dati su Internet che per archiviare informazioni in forma strutturata.

JSON( Inglese Notazione oggetto JavaScript) è un formato di scambio dati basato su testo basato su JavaScript e comunemente utilizzato con questo linguaggio. Come molti altri formati di testo,JSON è facile da leggere per gli esseri umani.

Nonostante le sue origini in JavaScript (più precisamente, da un sottoinsieme del linguaggio dello standard ECMA-262 del 1999), il formato è considerato indipendente dal linguaggio e può essere utilizzato con quasi tutti i linguaggi di programmazione. Disponibile per molte lingue codice pronto per creare ed elaborare dati in formato JSON.

Vantaggi pratici utilizzando JSON si apre quando viene utilizzato Tecnologie AJAX. Il formato JSON è più conciso e leggibile di XML ed è nativo di Javascript. Inoltre, è possibile inserire funzioni completamente funzionali nel codice JSON.

Sì, è nella tecnologia AJAX, secondo me, la sua applicazione principale. Poiché la tecnologia AJAX prevede l'invio di una richiesta del client al server. Successivamente, la richiesta viene elaborata sul server e il risultato viene inviato in risposta al client.

Tipo di dati in formato JSON

JSON supporta tutti i principali formati di dati: stringhe, numeri, booleani, nonché matrici e oggetti (combinazioni chiave:valore separate da virgole e racchiuse tra parentesi graffe).

Ecco un esempio di rappresentazione dei dati in formato JSON:

("id":"1","nome":"ivan","paese":"Russia","ufficio":["yandex","gestione"])

Diamo un'occhiata a cosa può trasmettere questa riga: una persona con il nome "ivan", con l'identificatore "1", che vive nel paese "Russia" lavora presso la società "yandex" nel dipartimento "gestione".

Facciamo un altro esempio. C'è un modulo sul sito feedback, lavorando utilizzando la tecnologia AJAX. Il visitatore compila le informazioni, quindi queste vengono inviate al server per la verifica; se non vengono rilevati errori, le informazioni vengono salvate nel database e viene inviata una risposta che indica l'avvenuto salvataggio. Ma se vengono rilevati errori, viene restituita una risposta con i tipi di errore.

Esempio di risposta all'errore in formato JSON:

("errore":"1","codice errore":["empty_pers","empty_mail","empty_phone","empty_letter","empty_scode"])

Il che, ad esempio, significa:

  • È necessario compilare il campo “Persona da contattare”.
  • È necessario compilare il campo “E-mail”.
  • È necessario compilare il campo "Telefono".
  • Inserisci il testo del messaggio
  • È necessario compilare il campo "Numero nell'immagine".

Se non ci sono errori, viene restituita la risposta:

("errore":"0")

Ciò indica il corretto invio dei dati.

In PHP, l'estensione JSON viene utilizzata per rappresentare i dati in formato JSON. IN Versioni PHP versioni precedenti alla 5.2.0 Il supporto JSON è integrato nel core, in più versioni precedenti deve essere collegato al tuo script file aggiuntivo con funzioni.

Quindi in PHP, due funzioni sono responsabili di lavorare con i dati in formato JSON: json_encode() e json_decode() .

Conversione dei dati in formato JSON

$json_data = array ("id"=>1,"nome"=>"ivan","paese"=>"Russia","ufficio"=>array("yandex","gestione")); echo json_encode($json_data);

Conversione dei dati dal formato JSON

$json_string="("id":1,"name":"ivan","country":"Russia","office":["yandex","management"]) "; $obj=json_decode($json_string);

Ora $obj conterrà i dati JSON tradotti in un oggetto PHP, a cui potrai accedere come segue:

Echo $oggetto->nome; //Visualizza il nome ivan echo $obj->office; //Visualizza la società Yandex

Come puoi vedere, $obj->office è un array.

Foreach($oggetto->ufficio come $val) echo $val;

Lavorare con JSON ti consente di scambiare dati con il server in « forma pura» . Non è necessario inviare voluminosi codici HTML.

Le persone che hanno familiarità con la programmazione riconosceranno immediatamente i file con estensione JSON. Questo formato è un'abbreviazione di JavaScript Object Notation ed è essenzialmente uno scambio di dati basato su testo utilizzato nel linguaggio di programmazione JavaScript. Di conseguenza, software specializzati o editor di testo ti aiuteranno ad affrontare l'apertura di tali file.

La caratteristica principale degli script in formato JSON è la sua intercambiabilità con il formato XML. Entrambi i tipi lo sono documenti di testo, che può essere aperto con elaboratori di testi. Tuttavia, inizieremo con un software specializzato.

Metodo 1: Altova XMLSpy

Un ambiente di sviluppo abbastanza noto, utilizzato anche dai programmatori web. Questo ambiente genera anche file JSON ed è quindi in grado di aprire documenti di terze parti con questa estensione.


Questo software presenta due svantaggi. Il primo è una base di distribuzione pagata. versione di provaè attivo per 30 giorni, ma per riceverlo devi fornire il tuo nome e Cassetta postale. Il secondo è l'ingombro generale: a chi ha solo bisogno di aprire un file, può sembrare troppo elaborato.

Metodo 2: Blocco note++

Un editor di testo multifunzionale è il primo nell'elenco delle opzioni adatte per aprire script in formato JSON.


Notepad++ ha molti vantaggi: mostra la sintassi di molti linguaggi di programmazione, supporta i plugin ed è di piccole dimensioni... Tuttavia, a causa di alcune funzionalità, il programma funziona lentamente, soprattutto se apri un documento di grandi dimensioni al suo interno.

Metodo 3: AkelPad

Un editor di testo incredibilmente semplice e allo stesso tempo ricco di funzionalità di uno sviluppatore russo. I formati supportati includono JSON.


Come Notepad++, anche questa opzione del blocco note è gratuita e supporta i plugin. Funziona più velocemente, ma grande e file complessi potrebbe non aprirsi la prima volta, quindi tieni presente questa funzione.

Metodo 4: Modifica Komodo

Software di scrittura gratuito codice del programma da Komodo. È diverso interfaccia moderna e ampio supporto di funzionalità per i programmatori.


Sfortunatamente, il programma non ha la lingua russa. Tuttavia, l'utente medio sarà più probabilmente scoraggiato dalle funzionalità eccessive e dagli elementi incomprensibili dell'interfaccia - dopo tutto, questo editor si rivolge principalmente ai programmatori.

Metodo 5: Testo sublime

Un altro rappresentante dell'orientamento al codice editor di testo. L'interfaccia è più semplice di quella dei suoi colleghi, ma le funzionalità sono le stesse. Disponibile e versione portatile applicazioni.


Purtroppo, Testo sublime non disponibile in russo. Il modello di distribuzione shareware può anche essere definito uno svantaggio: la versione gratuita non è limitata in alcun modo, ma di tanto in tanto appare un promemoria sulla necessità di acquistare una licenza.

Metodo 6: NFOPad

Per visualizzare documenti con estensione JSON è adatto anche un semplice blocco note.


NFOPad è adatto per visualizzare documenti JSON, ma c'è un avvertimento: quando si aprono alcuni di essi, il programma si blocca. A cosa sia collegata questa funzionalità non è noto, ma fai attenzione.

Metodo 7: Blocco note

E infine, standard elaboratore di testi, integrato nel sistema operativo Windows, è anche in grado di aprire file con estensione JSON.


In conclusione, diciamo quanto segue: i file con estensione JSON sono normali documenti di testo che possono essere elaborati non solo dai programmi descritti nell'articolo, ma anche da molti altri, incluso il suo analoghi liberi E . C'è un'alta probabilità che tali file siano in grado di gestire i file .

I migliori articoli sull'argomento