Input (Array di oggetti JSON)

Output unito

Cos'è la fusione JSON?

La fusione JSON combina due o più oggetti JSON in uno solo. Le chiavi del secondo oggetto sovrascrivono quelle del primo in caso di conflitto. La fusione profonda gestisce gli oggetti annidati ricorsivamente; la fusione superficiale sostituisce gli oggetti annidati completamente.

Questo strumento funziona nel tuo browser. Incolla un array di oggetti JSON, scegli la modalità e ottieni l'output unito istantaneamente. Niente viene inviato a un server.

Come usare questo strumento

1

Incolla o carica

Incolla un array di oggetti JSON nell'editor di sinistra o carica un file. Usa Esempio per caricare dati di prova.

2

Scegli la modalità di fusione

Seleziona Profondo per unire gli oggetti annidati ricorsivamente, o Superficiale per una semplice unione di primo livello. L'output si aggiorna automaticamente.

3

Copia o scarica

Usa <strong>Copia</strong> o <strong>Scarica</strong> per ottenere il JSON unito. Per formattare il risultato: Formattatore JSON. Per validare: Validatore JSON.

Dove aiuta la fusione JSON

La fusione JSON è comune nella gestione delle configurazioni: combinare le impostazioni predefinite con gli override specifici dell'utente. Nelle applicazioni web, le risposte API vengono spesso unite con lo stato locale. Il Formattatore JSON aiuta a formattare il risultato per la leggibilità.

Esempi di fusione JSON

Esempio di fusione di due oggetti di configurazione abbonato. Il secondo oggetto sovrascrive il primo per le chiavi in conflitto.

Esempio: fusione configurazione abbonato

Input (array di oggetti da unire):

Input

Output unito:

Output

Fusione superficiale vs profonda

Fusione superficiale: se entrambi gli oggetti hanno una chiave, il valore del secondo sostituisce completamente il primo. Gli oggetti annidati non vengono uniti, vengono sostituiti. Fusione profonda: gli oggetti annidati vengono uniti ricorsivamente. Quindi unire {"a": {"b": 1}} con {"a": {"c": 2}}{"a": {"b": 1, "c": 2}} in modalità profonda, ma {"a": {"c": 2}} in modalità superficiale. Object.assign di JavaScript fa una fusione superficiale. Le librerie come Lodash merge fanno una fusione profonda.

La specifica JSON definisce gli oggetti come collezioni non ordinate di coppie chiave-valore. L'ordine di fusione è importante: i valori successivi sovrascrivono quelli precedenti. Unire le configurazioni dalle risposte API di Postman o fetch, o combinare valori predefiniti con override, è comune. Lo standard ufficiale è RFC 8259. La guida JSON di MDN tratta il parsing e la serializzazione.

Domande frequenti

Ho due oggetti separati invece di un array?

Avvolgili in un array: [{"a": 1}, {"b": 2}]. Questo strumento si aspetta un array di oggetti.

Come vengono gestiti gli array?

Nella maggior parte delle implementazioni di fusione, gli array vengono sostituiti, non concatenati. Se l'oggetto A ha "items": [1, 2] e l'oggetto B ha "items": [3], il risultato è tipicamente "items": [3]. Controlla l'output dello strumento per confermare.

I dati vengono inviati da qualche parte?

No. La fusione avviene nel browser.

Posso unire file di configurazione?

Sì. Incolla ogni configurazione come un oggetto nell'array, con i valori predefiniti prima e gli override dopo. La fusione profonda è generalmente migliore per le strutture di configurazione annidate.

Cosa succede con le chiavi duplicate nello stesso oggetto?

Gli oggetti JSON non possono avere chiavi duplicate. Se ce le hanno, il parser ne mantiene solo una. Prima valida con Validatore JSON.

Strumenti correlati

Per la sintassi JSON, vedi json.org e RFC 8259. Per la fusione in JavaScript, vedi MDN Object.assign e la sintassi spread. Per la fusione profonda di Lodash, vedi la funzione merge. Per una panoramica JSON, MDN. Vedi anche jq e Postman.