Vai al contenuto
🛠️ToolsShed

Strumento di Unione JSON

Unisce profondamente più oggetti JSON in uno con opzioni di risoluzione dei conflitti.

Oggetto JSON #1
Oggetto JSON #2

Informazioni sullo strumento

Lo strumento JSON Merge combina più oggetti JSON in un'unica struttura unificata utilizzando l'unione profonda, il che significa che gli oggetti e gli array annidati vengono combinati in modo intelligente anziché essere semplicemente sovrascritti. Questo è essenziale per gli sviluppatori che lavorano con file di configurazione, risposte API o flussi di lavoro di aggregazione dei dati in cui è necessario combinare dati provenienti da fonti diverse mentre si preservano le informazioni significative da ogni input.

Per utilizzare lo strumento, incolla i tuoi oggetti JSON nei campi di input, seleziona la tua strategia di unione preferita (come sovrascrittura, concatenazione di array o unione profonda) e fai clic sul pulsante di unione. Lo strumento gestisce automaticamente le strutture annidate, risolvendo i conflitti in base alla strategia scelta. I casi di uso comuni includono l'unione delle configurazioni di ambiente, la combinazione dei payload API, il consolidamento delle impostazioni da più servizi e l'integrazione dei fixture di test o dei dati simulati.

Lo strumento funziona interamente nel tuo browser, quindi i tuoi dati JSON non lasciano mai il tuo computer, rendendolo sicuro anche per le configurazioni sensibili. Tieni presente che il comportamento di unione dipende dalla strategia scelta—comprendi se desideri combinare oggetti annidati, aggiungere array o sostituire valori per ottenere il risultato esatto di cui hai bisogno.

Domande Frequenti

Implementazione del Codice

import json
from copy import deepcopy

def deep_merge(base: dict, override: dict, strategy: str = "last_wins") -> dict:
    """
    Deep merge two dicts.
    strategy: 'last_wins' | 'first_wins' | 'array_concat'
    """
    result = deepcopy(base)
    for key, value in override.items():
        if key in result:
            if isinstance(result[key], dict) and isinstance(value, dict):
                result[key] = deep_merge(result[key], value, strategy)
            elif isinstance(result[key], list) and isinstance(value, list) and strategy == "array_concat":
                result[key] = result[key] + value
            else:
                if strategy != "first_wins":
                    result[key] = deepcopy(value)
        else:
            result[key] = deepcopy(value)
    return result

# Example
a = {"name": "Alice", "scores": [1, 2], "meta": {"v": 1}}
b = {"name": "Bob",   "scores": [3, 4], "meta": {"v": 2, "new": True}}

print(json.dumps(deep_merge(a, b, "last_wins"),   indent=2))
print(json.dumps(deep_merge(a, b, "first_wins"),  indent=2))
print(json.dumps(deep_merge(a, b, "array_concat"),indent=2))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.