Passa al contenuto principale

RFC 7159 - The JavaScript Object Notation (JSON) Data Interchange Format

  • Stato: Proposed Standard
  • Pubblicato: March 2014
  • Stream: IETF
  • Sostituisce: RFC4627, RFC7158
  • Sostituito da: RFC8259
  • Errata: Nessun errata

Sommario (Abstract)

JavaScript Object Notation (JSON) è un formato di scambio dati leggero, basato su testo e indipendente dal linguaggio. Deriva dallo standard del linguaggio di programmazione ECMAScript. JSON definisce un piccolo insieme di regole di formattazione per la rappresentazione portabile di dati strutturati.

Questo documento elimina le incoerenze con altre specifiche JSON, corregge gli errori di specifica e fornisce linee guida di interoperabilità basate sull'esperienza.


Concetti fondamentali di JSON

Tipi di dati

JSON supporta i seguenti tipi di dati:

Tipi primitivi (Primitive Types):

  • string - Stringa
  • number - Numero
  • boolean - Booleano (true/false)
  • null - Valore nullo

Tipi strutturati (Structured Types):

  • object - Oggetto (collezione non ordinata di coppie chiave-valore)
  • array - Array (sequenza ordinata di valori)

Esempi di sintassi

Oggetto (Object):

{
"name": "张三",
"age": 30,
"city": "北京"
}

Array:

[1, 2, 3, 4, 5]

Struttura nidificata:

{
"users": [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
],
"total": 2
}

Cambiamenti principali rispetto a RFC 4627

  1. Definizione di testo JSON più flessibile: Consente al testo JSON di essere qualsiasi valore JSON, non solo oggetti o array
  2. Correzioni di errori: Corregge gli errori segnalati in RFC 4627
  3. Linee guida di interoperabilità: Fornisce più consigli sull'interoperabilità dell'implementazione
  4. Chiarezza della codifica: Enfatizza l'uso della codifica UTF-8

  • Testo originale ufficiale: RFC 7159 (TXT)
  • Pagina ufficiale: RFC 7159 DataTracker
  • Rende obsoleti: RFC 4627 (vecchia specifica JSON)
  • Reso obsoleto da: È stato sostituito da RFC 8259
  • Tipo di media: application/json
  • Estensione file: .json

Riferimento rapido

Tipo MIME

Content-Type: application/json; charset=UTF-8

Strumenti comunemente usati

Validazione online:

Supporto dei linguaggi di programmazione:

JavaScript:

const obj = JSON.parse('{"name":"Alice"}');
const str = JSON.stringify({name: "Bob"});

Python:

import json
obj = json.loads('{"name":"Alice"}')
str = json.dumps({"name": "Bob"})

Java:

// Con la libreria Jackson o Gson
ObjectMapper mapper = new ObjectMapper();
MyObject obj = mapper.readValue(jsonString, MyObject.class);

Nota importante: RFC 7159 è stato sostituito da RFC 8259, ma rimane un documento importante per comprendere la storia dell'evoluzione di JSON. Le applicazioni moderne dovrebbero fare riferimento a RFC 8259 come standard attuale.