Outil de Fusion JSON
Fusionne profondément plusieurs objets JSON en un avec des options de résolution de conflits.
À propos de cet outil
L'outil JSON Merge combine plusieurs objets JSON en une structure unifiée unique en utilisant une fusion profonde, ce qui signifie que les objets et tableaux imbriqués sont intelligemment combinés plutôt que simplement remplacés. Ceci est essentiel pour les développeurs travaillant avec des fichiers de configuration, des réponses API ou des flux de travail d'agrégation de données où vous devez combiner des données provenant de différentes sources tout en préservant les informations significatives de chaque entrée.
Pour utiliser l'outil, collez vos objets JSON dans les champs d'entrée, sélectionnez votre stratégie de fusion préférée (telle que le remplacement, la concaténation de tableaux ou la fusion profonde) et cliquez sur le bouton de fusion. L'outil gère automatiquement les structures imbriquées, en résolvant les conflits selon votre stratégie choisie. Les cas d'utilisation courants incluent la fusion de configurations d'environnement, la consolidation des charges utiles API, l'intégration des paramètres de plusieurs services et la fusion des fixtures de test ou des données fictives.
L'outil fonctionne entièrement dans votre navigateur, vos données JSON ne quittent donc jamais votre ordinateur, ce qui le rend sûr pour les configurations sensibles. Gardez à l'esprit que le comportement de fusion dépend de votre stratégie choisie—comprenez si vous souhaitez combiner des objets imbriqués, ajouter des tableaux ou remplacer des valeurs pour obtenir le résultat exact dont vous avez besoin.
Questions Fréquentes
Implémentation du Code
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.