Vai al contenuto principale
CuteJSON
↑↓ Naviga Enter Seleziona Esc Chiudi

Cos e JSON? Una guida principianti a JavaScript Object Notation

Pubblicato 3 min di lettura Di Akash Kinkar Pandey

JSON, JavaScript Object Notation, e un formato di testo per rappresentare dati strutturati: oggetti, liste, stringhe, numeri, booleani e un valore nullo, scritto in una sintassi abbastanza piccola da essere letta in un pomeriggio e abbastanza rigida affinche tutti i linguaggi la analizzino allo stesso modo. Non e legato a JavaScript nonostante il nome. Tutti i linguaggi principali includono un analizzatore JSON nella loro libreria standard o con un installazione con una riga, che e il motivo reale per cui ha vinto: non perche e elegante, ma perche e noioso e portabile.

Come appare

{
  "nome": "Ada Lovelace",
  "eta": 36,
  "eImpiegata": true,
  "competenze": ["matematica", "scrittura"],
  "indirizzo": { "citta": "Londra", "paese": "UK" },
  "soprannome": null
}

Un oggetto e { } contenente coppie chiave valore, un array e [ ] contenente una lista ordinata, e tutto il resto si annida all interno di quei due contenitori. Questa e tutta la forma di JSON: due tipi di contenitore e qualche tipo di valore al loro interno.

I sei tipi di valore, ne di piu ne di meno

Un valore JSON e una stringa, un numero, un booleano (true o false), null, un array o un oggetto. Altro non esiste nella specifica. Non c e un tipo data, non c e undefined, non c e una sintassi per i commenti, e non c e un modo per rappresentare una funzione. Una data diventa una stringa in un formato concordato da entrambe le parti (generalmente ISO 8601), e un valore che sarebbe undefined in JavaScript viene semplicemente omesso dall oggetto invece di essere scritto. [Tipi di Dati JSON Spiegati](/blog/json- data-types) dettaglia ciascuno dei sei in maggiore profondita, inclusi i casi limite che fanno cadere un analizzatore naif.

Perche ha sostituito XML per la maggior parte delle API

XML avvolge ogni valore in tag di apertura e chiusura, supporta attributi oltre a quello, e necessita di un linguaggio di schema separato per descrivere che cosa e valido. I contenitori JSON sono di due caratteri ciascuno, i valori sono tipizzati senza un tag che lo dica, e la forma del documento riflette la forma della struttura dati che un programma usa effettivamente; analizzare un documento JSON nel letterale oggetto nativo di un linguaggio e quasi una copia diretta, dove un documento XML di solito richiede il proprio modello oggetto tradotto sopra. Questa e una differenza reale e misurabile in dimensione del payload e costo di analisi, ed e per questo che le API REST si sono stabilite su JSON una volta che e esistito. Vedi JSON vs XML per un confronto piu vicino e specifico.

Dove lo incontrerai davvero

  • Risposte e richieste di API REST. Il formato dominante per i corpi Content-Type: application/json, in entrambe le direzioni.
  • File di configurazione. package.json, tsconfig.json, e la maggior parte delle configurazioni degli strumenti moderni, anche se YAML e comune anche qui; vedi JSON vs YAML per quando ognuno e preferibile.
  • Database NoSQL e di documenti. I documenti MongoDB sono memorizzati come BSON, un sovrainsieme binario di JSON, e la maggior parte dei database di documenti accetta e restituisce JSON direttamente.
  • Linee di log e pipeline di dati, un oggetto JSON per riga, un formato generalmente chiamato NDJSON. Casi d Uso JSON Comuni percorre questo e gli altri con forme reali.
  • Archiviazione del browser. localStorage memorizza solo stringhe, quindi qualsiasi cosa strutturata passa da JSON.stringify in entrata e da JSON.parse in uscita.

Lavorare con

Incolla un documento nel Formatter JSON per stamparlo formattato, o nel Validatore JSON per verificarlo rispetto alla specifica con una riga e una colonna sul carattere esatto che ha fallito. Nessuno carica quello che incollate; entrambi girano interamente nel vostro browser. Una volta che le basi hanno senso, il Scheda di Riferimento JSON e un riferimento di una pagina per le regole di sintassi sopra, da tenere aperta in un scheda o da scaricare per riferimento offline.

Torna a tutti i post