JSON

JSON Path Extractor / Flatten

İç içe geçmiş JSON'u düz "yol: değer" listesine açma (Flatten) ve tekrar iç içe yapıya dönüştürme (Unflatten). Yol gösterimi JSONPath/JSON Diff ile aynıdır: 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.

Bu araç hakkında makale: JSON Flatten: iç içe geçmiş bir yapıyı düz bir listeye dönüştürme

Sıkça sorulan sorular

Bir JSON nesnesini "düzleştirmek" (flatten) aslında ne yapar?

İç içe geçmiş nesneleri ve dizileri, nokta veya köşeli parantez gösterimli anahtarlara sahip tek seviyeli bir nesneye dönüştürür (user.address.city veya items[0].id gibi), böylece derinlemesine iç içe geçmiş veriler düz bir tablo olarak okunması veya elektronik tablo araçlarına aktarılması daha kolay hale gelir.

Düzleştirilmiş bir JSON, orijinal iç içe geçmiş haline geri dönüştürülebilir mi?

Evet, anahtar gösterimi tutarlı olduğu sürece — süreci tersine çevirmek, her anahtar yolunu tekrar nesnelere ve dizilere ayırarak orijinal iç içe geçmiş yapıyı yeniden oluşturur.

Düzleştirme orijinal JSON'dan herhangi bir bilgi kaybettirir mi?

Hayır. Her değer korunur; yalnızca yapı değişir, çünkü her benzersiz iç içe geçmiş yol kendi düz anahtarı haline gelir.

Gerçek bir anahtarın kendisi nokta içeriyorsa ne olur?

Bu belirsiz bir durumdur: user.name yolu hem iç içe geçmiş bir nesneyi ({"user": {"name": ...}}), hem de düz bir anahtarı ({"user.name": ...}) ifade edebilir. Noktalı gösterim bunu ayırt edemez, bu yüzden bu tür anahtarlardan kaçınmak veya ayrıca ele almak gerekir.

Yol formatı bu tür tüm araçlarda aynı mı?

Hayır. Nesneler için noktalı gösterim (user.name) neredeyse her yerde yaygındır, ancak dizi indeksi gösterimi farklılık gösterir: burada items[0] kullanılır, ancak bazı kütüphaneler parantezsiz items.0 yazar.

Makaleler: JSON