JSON Flattener
Ratakan JSON bersarang menjadi pasangan kunci-nilai datar dengan notasi titik.
Tentang alat ini
Perataan JSON adalah proses mengonversi struktur JSON yang bersarang menjadi representasi tingkat tunggal menggunakan kunci notasi titik. Ketika Anda bekerja dengan objek bersarang kompleks dari API, basis data, atau file konfigurasi, alat ini mengubahnya menjadi pasangan kunci-nilai sederhana yang lebih mudah untuk dianalisis, disimpan, atau diekspor ke format seperti CSV atau spreadsheet.
Untuk menggunakan JSON Flattener, cukup tempel JSON bersarang ke area input dan klik tombol ratakan. Alat ini dengan segera mengonversi objek multi-level dan array menjadi kunci yang diratakan di mana hubungan parent-child direpresentasikan dengan titik—misalnya, "user.profile.email" daripada tanda kurung bersarang. Anda kemudian dapat menyalin hasilnya secara langsung atau mengekspornya untuk digunakan dalam saluran data, alat pelaporan, atau aplikasi spreadsheet.
Alat ini sangat berharga bagi insinyur data yang mengubah respons API yang tidak terstruktur, pengembang yang men-debug struktur objek kompleks, dan analis yang mempersiapkan data untuk platform BI yang mengharapkan skema yang diratakan. JSON Flattener menghormati indeks array dan pemisah kustom, menjadikannya fleksibel untuk berbagai alur kerja transformasi data.
Pertanyaan yang Sering Diajukan
Implementasi Kode
def flatten(obj, prefix="", sep="."):
"""Flatten a nested dict into dot-notation keys."""
result = {}
if isinstance(obj, dict):
for key, value in obj.items():
new_key = f"{prefix}{sep}{key}" if prefix else key
if isinstance(value, (dict, list)):
result.update(flatten(value, new_key, sep))
else:
result[new_key] = value
elif isinstance(obj, list):
for i, value in enumerate(obj):
new_key = f"{prefix}{sep}{i}" if prefix else str(i)
if isinstance(value, (dict, list)):
result.update(flatten(value, new_key, sep))
else:
result[new_key] = value
else:
result[prefix] = obj
return result
def unflatten(flat, sep="."):
"""Reconstruct nested dict from dot-notation keys."""
result = {}
for key, value in flat.items():
parts = key.split(sep)
d = result
for part in parts[:-1]:
d = d.setdefault(part, {})
d[parts[-1]] = value
return result
# Example
nested = {"user": {"name": "Alice", "address": {"city": "Seoul"}}}
flat = flatten(nested)
print(flat) # {'user.name': 'Alice', 'user.address.city': 'Seoul'}
print(unflatten(flat)) # back to nestedComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.