← Tutti gli articoli

Esempi di formato JSON: oggetti, array e pattern del mondo reale

Esempi JSON pronti da copiare e incollare che coprono ogni tipo di dato, strutture annidate, risposte di API REST, file di configurazione, formati data e GeoJSON — con pattern di errori comuni e le loro correzioni.

Il modo migliore per capire JSON è leggere esempi. Questa guida percorre il formato JSON da zero —— oggetti semplici, strutture annidate, array, tipi misti —— e poi mostra pattern JSON del mondo reale che incontrerai in API, file di configurazione e database. Ogni esempio è JSON valido, copiabile-e-incollabile.

Usali come file json di esempio per test, fixture o documentazione —— ogni snippet sotto è un vero esempio json che puoi salvare con estensione .json e caricare direttamente.

L'esempio JSON più semplice

Qualunque valore JSON valido è un documento JSON completo. I documenti JSON più semplici sono primitivi:

"hello"        // una stringa
42             // un numero
true           // un booleano
null           // null

In pratica, quasi ogni documento JSON che incontri è un oggetto o un array.

Esempio di oggetto JSON

Un oggetto JSON è una raccolta di coppie chiave–valore. Le chiavi devono essere stringhe tra virgolette doppie. I valori possono essere di qualunque tipo JSON.

{
  "id": 42,
  "name": "Alice Chen",
  "email": "alice@example.com",
  "age": 30,
  "active": true,
  "score": 98.6,
  "nickname": null
}

Nota: l'ordine delle chiavi negli oggetti JSON non è garantito —— i parser possono restituire le chiavi in qualunque ordine.

Esempio di array JSON

Un array JSON è una lista ordinata di valori. Gli elementi possono essere di tipo diverso e l'ordine è sempre preservato.

// Array di stringhe
["apple", "banana", "cherry"]

// Array di numeri
[1, 2, 3, 4, 5]

// Tipi misti
[42, "hello", true, null, { "key": "value" }]

// Array di oggetti (comune nelle risposte API)
[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" },
  { "id": 3, "name": "Carol" }
]

Esempio di JSON annidato

Oggetti e array possono essere annidati a qualsiasi profondità. Da qui viene l'espressività del JSON.

{
  "user": {
    "id": 1001,
    "name": "Alice Chen",
    "address": {
      "street": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102"
    },
    "tags": ["premium", "early-adopter"],
    "preferences": {
      "notifications": {
        "email": true,
        "sms": false,
        "push": true
      },
      "theme": "dark"
    }
  }
}

Esempio di formato JSON: risposta di API REST

Una risposta API paginata tipica si presenta così:

{
  "status": "success",
  "data": {
    "page": 1,
    "per_page": 10,
    "total": 47,
    "total_pages": 5,
    "items": [
      {
        "id": "prod_001",
        "name": "Wireless Headphones",
        "price": 89.99,
        "currency": "USD",
        "in_stock": true,
        "categories": ["electronics", "audio"],
        "rating": 4.7,
        "reviews_count": 2341
      },
      {
        "id": "prod_002",
        "name": "USB-C Hub",
        "price": 39.99,
        "currency": "USD",
        "in_stock": false,
        "categories": ["electronics", "accessories"],
        "rating": 4.2,
        "reviews_count": 891
      }
    ]
  },
  "meta": {
    "request_id": "req_8f3a2c",
    "timestamp": "2024-10-15T14:32:00Z"
  }
}

Esempio di file di configurazione JSON

I file di configurazione in JSON sono comuni nel tooling JavaScript. Ecco una struttura tipica di package.json:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "A sample application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "jest",
    "build": "tsc"
  },
  "dependencies": {
    "express": "^4.18.2",
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "jest": "^29.0.0"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}

Formato dati JSON: data e ora

JSON non ha un tipo data nativo. Le date sono rappresentate come stringhe. ISO 8601 è il formato universalmente accettato:

{
  "created_at": "2024-10-15T14:32:00Z",        // datetime UTC
  "updated_at": "2024-10-15T14:32:00+08:00",   // con offset di fuso
  "birth_date": "1990-06-21",                   // solo data
  "meeting_time": "09:00:00"                    // solo ora
}

In alternativa, alcuni sistemi usano timestamp Unix (secondi dall'epoca) come numeri:

{
  "created_at": 1728999120,
  "expires_at": 1761057600
}

JSON con campi opzionali e nulli

Usa null per i campi che esistono ma non hanno valore. Ometti del tutto i campi opzionali e assenti.

{
  "id": 5,
  "name": "Bob",
  "email": "bob@example.com",
  "phone": null,            // esiste ma non impostato
  "company": "Acme Corp",
  "title": null             // esiste ma non impostato
  // "fax" è del tutto omesso —— non applicabile
}

Esempi di errori JSON (e come correggerli)

Questi sono errori di formattazione JSON comuni:

// ❌ apici singoli (non è JSON valido)
{ 'name': 'Alice' }

// ✅ Correzione: usa le virgolette doppie
{ "name": "Alice" }

// ❌ Chiave senza virgolette
{ name: "Alice" }

// ✅ Correzione: quota la chiave
{ "name": "Alice" }

// ❌ Virgola finale
{ "a": 1, "b": 2, }

// ✅ Correzione: rimuovi la virgola finale
{ "a": 1, "b": 2 }

// ❌ Commento JavaScript
{ "debug": true // abilita logging }

// ✅ Correzione: rimuovi il commento
{ "debug": true }

// ❌ Booleano in stile Python
{ "active": True }

// ✅ Correzione: usa il minuscolo
{ "active": true }

Se la tua stringa JSON ha uno qualsiasi di questi errori, incollala in JSON Fix per ripararla e formattarla automaticamente.

Esempio di JSON Lines (NDJSON, jsonlines)

Per log in streaming, dataset ML e API in bulk, la convenzione è un valore JSON per riga separati da \n. Il formato ha due nomi —— jsonlines (da jsonlines.org) e NDJSON —— ma la spec è la stessa:

{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"}

Ogni riga si parsa indipendentemente. Non fare JSON.parse() sull'intero file —— splitta sull'a-capo e parsa riga per riga.

Esempio di risposta OpenAPI

Una spec OpenAPI definisce le risposte usando una forma in stile JSON Schema:

{
  "openapi": "3.1.0",
  "paths": {
    "/users/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["id", "email"],
                  "properties": {
                    "id":    { "type": "integer" },
                    "email": { "type": "string", "format": "email" }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Esempi solo-data e solo-ora

ISO 8601 definisce anche forme di sola data e sola ora —— utili quando l'orario del giorno o la data non hanno davvero senso:

{
  "birth_date":   "1815-12-10",         // solo data
  "office_hours": "09:00:00",           // solo ora
  "started_at":   "2026-05-28T09:00:00Z" // datetime completo, per contrasto
}

Esempio di GeoJSON

GeoJSON è un formato standard per dati geografici basato su JSON:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [-122.4194, 37.7749]
  },
  "properties": {
    "name": "San Francisco",
    "country": "US",
    "population": 873965
  }
}

Domande frequenti

Qual è un esempio di JSON valido?

Il più semplice è un singolo primitivo come 42 o "hello", ma la maggior parte del JSON reale è un oggetto come { "name": "Alice", "age": 30, "active": true } o un array di tali oggetti.

Come si rappresentano le date in JSON?

JSON non ha un tipo data. Le date sono salvate come stringhe —— ISO 8601 ("2024-10-15T14:32:00Z") è la scelta universale —— o come timestamp Unix numerici.

Come rappresento un valore mancante in JSON?

Usa null per un campo che esiste ma non ha valore, e ometti del tutto la chiave per i campi che non si applicano. JSON non ha undefined.

Come si presenta il JSON annidato?

Oggetti e array possono contenere altri oggetti e array a qualsiasi profondità —— vedi gli esempi annidato e REST API sopra. Per le regole sottostanti vedi Cos'è JSON?

Prova questi esempi

Copia uno qualsiasi degli esempi sopra e incollalo negli strumenti qui sotto per esplorare i dati:

  • JSON Fix —— formatta, valida e ripara JSON
  • JSON Diff —— confronta due esempi JSON affiancati
  • Cos'è JSON? —— guida completa ai sei tipi di dato e alla grammatica JSON
  • Come formattare JSON —— pretty-print JSON in JavaScript, Python, jq e nel browser
  • JSON Stringify —— converti un valore JSON in un literal di stringa escaped