Alat Penggabungan JSON
Menggabungkan beberapa objek JSON secara mendalam dengan opsi resolusi konflik.
Tentang alat ini
Alat JSON Merge menggabungkan beberapa objek JSON menjadi struktur terpadu tunggal menggunakan penggabungan mendalam, yang berarti objek dan array bertingkat digabungkan secara cerdas daripada sekadar ditimpa. Ini sangat penting bagi pengembang yang bekerja dengan file konfigurasi, respons API, atau alur kerja agregasi data di mana Anda perlu menggabungkan data dari sumber berbeda sambil mempertahankan informasi bermakna dari setiap input.
Untuk menggunakan alat, tempel objek JSON Anda ke bidang input, pilih strategi penggabungan pilihan Anda (seperti penimpa, penggabungan array, atau penggabungan mendalam), dan klik tombol penggabungan. Alat ini menangani struktur bertingkat secara otomatis, menyelesaikan konflik sesuai dengan strategi pilihan Anda. Kasus penggunaan umum termasuk penggabungan konfigurasi lingkungan, penggabungan muatan API, konsolidasi pengaturan dari beberapa layanan, dan integrasi perlengkapan pengujian atau data tiruan.
Alat ini berfungsi sepenuhnya di browser Anda, jadi data JSON Anda tidak pernah meninggalkan komputer Anda, menjadikannya aman untuk konfigurasi sensitif. Ingat bahwa perilaku penggabungan bergantung pada strategi pilihan Anda—pahami apakah Anda ingin menggabungkan objek bertingkat, menambahkan array, atau mengganti nilai untuk mencapai hasil yang tepat yang Anda butuhkan.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.