JSON

JSON Path Extractor / Flatten

Meratakan (Flatten) JSON bersarang menjadi daftar datar "jalur: nilai" dan menyusunnya kembali menjadi struktur bersarang (Unflatten). Notasi jalur sama seperti di JSONPath/JSON Diff: store.book[0].price.

Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.

How to use it

Common uses

Things to keep in mind

Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.

Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.

Artikel tentang alat ini: JSON Flatten: mengubah struktur bersarang menjadi daftar datar

Pertanyaan yang sering diajukan

Apa sebenarnya yang dilakukan "flattening" pada objek JSON?

Ini mengubah objek dan array bersarang menjadi objek satu level dengan kunci notasi titik atau kurung (seperti user.address.city atau items[0].id), membuat data yang sangat bersarang lebih mudah dibaca sebagai tabel datar atau diimpor ke alat spreadsheet.

Bisakah JSON yang telah diratakan dikonversi kembali ke bentuk bersarang aslinya?

Ya, selama notasi kuncinya konsisten — membalik proses ini merekonstruksi struktur bersarang asli dengan memecah setiap jalur kunci kembali menjadi objek dan array.

Apakah flattening menghilangkan informasi dari JSON asli?

Tidak. Setiap nilai dipertahankan; hanya struktur yang berubah, karena setiap jalur bersarang unik menjadi kunci datarnya sendiri.

Apa yang terjadi jika kunci asli sendiri mengandung titik?

Ini situasi yang ambigu: jalur user.name bisa berarti objek bersarang {"user": {"name": ...}} maupun kunci datar {"user.name": ...}. Format notasi titik tidak bisa membedakannya, jadi sebaiknya kunci semacam ini dihindari atau ditangani secara khusus.

Apakah format jalur sama di semua alat serupa?

Tidak. Notasi titik untuk objek (user.name) hampir universal, tetapi notasi indeks array berbeda-beda: di sini digunakan items[0], sedangkan beberapa pustaka lain menulis items.0 tanpa tanda kurung.

Artikel: JSON