JSON Düzleştirme
İç içe JSON'u ayırıcılı düz anahtarlara dönüştürün ve gerektiğinde orijinal yapıyı geri yükleyin. Tüm işlemler tarayıcınızda güvenli şekilde çalışır.
İlgili Öneriler
Kullanım senaryoları
- MongoDB sorguları ve güncellemeleri: Nokta yollarını elle yazmadan düz anahtarları doğrudan kullanın
- CSV ve Excel aktarması: Çok katmanlı JSON'u tabloya uygun tek katmanlı alanlara çevirin
- Elasticsearch hazırlığı: Derin iç içe belgeleri indeksleme ve arama için daha uygun hale getirin
- API hata ayıklama: İstek ve yanıt alanlarını tek seviyeli anahtarlarla karşılaştırın
- Yapılandırma ve ortam değişkenleri: package.json ve settings.json içindeki derin ayarları açığa çıkarın
Nasıl Kullanılır
- JSON metnini sola yapıştırın veya yerel .json dosyasını yükleyin
- Flatten ya da unflatten modunu seçip ayırıcı, dizi davranışı ve maksimum derinliği ayarlayın
- Sağ tarafta oluşan sonucu, anahtar sayısını ve derinlik bilgisini kontrol edin
- Sonucu kopyalayın veya .json dosyası olarak indirin
Özellikler
- Çift yönlü dönüşüm: Hem flatten hem unflatten işlevleriyle veriyi iki yönde de dönüştürebilirsiniz
- Özel ayırıcı: Nokta, alt çizgi, slash veya başka bir ayırıcıyı hedef sisteme göre seçebilirsiniz
- Esnek dizi işleme: Dizi elemanlarını indeksli anahtarlara açabilir veya tüm diziyi tek değer olarak koruyabilirsiniz
- Maksimum derinlik sınırı: Düzleştirmeyi belirli seviyede durdurup aşırı uzun anahtarların oluşmasını engellersiniz
- Yerel gizlilik: Tüm işleme tarayıcıda yapılır, JSON verileri sunucuya gönderilmez
- Hızlı iş akışı: .json yükleme, örnek veri, sonucu kopyalama ve indirme tek yerde sunulur
Kod Örnekleri
JavaScript ile JSON düzleştirme
javascriptfunction flatten(obj, prefix = '', sep = '.') {
return Object.entries(obj).reduce((acc, [key, value]) => {
const newKey = prefix ? `${prefix}${sep}${key}` : key;
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
Object.assign(acc, flatten(value, newKey, sep));
} else {
acc[newKey] = value;
}
return acc;
}, {});
}
flatten({ user: { name: 'Alice', contact: { email: 'a@x.com' } } });
// => { 'user.name': 'Alice', 'user.contact.email': 'a@x.com' }Python ile JSON düzleştirme
pythondef flatten(obj, parent_key='', sep='.'):
items = {}
for key, value in obj.items():
new_key = f"{parent_key}{sep}{key}" if parent_key else key
if isinstance(value, dict):
items.update(flatten(value, new_key, sep))
else:
items[new_key] = value
return items
import json
print(json.dumps(flatten({'user': {'name': 'Alice'}}), indent=2))
# => {"user.name": "Alice"}Komut satırında jq ile JSON düzleştirme
bash# İç içe JSON'u nokta ayraçlı düz bir yapıya çevir
jq '[paths(scalars) as $p | {"key": $p | join("."), "value": getpath($p)}] | from_entries' data.json
# Düz JSON'u yeniden iç içe yapıya çevir
# jq 1.7+ ve harici filtre kullanın veya bu aracın unflatten modunu açınSık Sorulan Sorular
JSON düzleştirme nedir ve ne zaman gerekir?
JSON düzleştirme, iç içe nesne ve dizileri tek katmanlı anahtar-değer çiftlerine dönüştürür. MongoDB nokta sorguları, CSV dışa aktarma, Elasticsearch indeksleme, ortam değişkenleri ve API alan karşılaştırmalarında çok işe yarar.
Düzleştirilmiş JSON'u tekrar iç içe yapıya çevirebilir miyim?
Evet. Aynı ayırıcıyı kullandığınız sürece araç düz anahtarları tekrar nesne ve dizi yapısına dönüştürebilir. Sıralı sayısal anahtarlar otomatik olarak dizi kabul edilir.
Ayırıcıyı değiştirebilir miyim, diziler nasıl ele alınır?
Evet. Nokta, alt çizgi, slash, çift alt çizgi veya özel bir ayırıcı kullanabilirsiniz. Dizileri `items.0` gibi indeksli anahtarlara açabilir veya olduğu gibi saklayabilirsiniz.
JSON'u online işlemek veri gizliliğimi etkiler mi?
Hayır. Tüm ayrışma ve dönüşüm işlemleri yerel tarayıcıda çalışır; JSON verileri harici bir sunucuya yüklenmez.
MongoDB'de sonucu nasıl kullanırım?
MongoDB, iç içe alanlara nokta gösterimiyle erişir. Bu araçla oluşan anahtarları `find`, `update` ve aggregation adımlarında doğrudan kullanabilirsiniz.
Sonucu CSV veya Excel'e aktarabilir miyim?
Evet. Alanlar tek seviyede toplandığı için JSON to CSV aracı, Excel veya Pandas ile sütun bazlı çalışmak çok daha kolay olur.
Orijinal anahtarda nokta veya ayırıcı varsa ne olur?
Bu durum geri kurma sırasında seviye çakışmasına yol açabilir. Farklı bir ayırıcı seçin veya dönüşümden önce ilgili anahtarları kaçışlayın.
Büyük JSON dosyalarını işleyebilir mi?
Normal API yanıtları ve ayar dosyaları sorunsuzdur. Çok büyük JSON'lar için veriyi parçalamak veya `jq` gibi yerel CLI araçları kullanmak daha sağlıklıdır.
Sorun Giderme
Girdi geçerli JSON olarak algılanmıyor
Eksik tırnak, fazla virgül, kapanmamış parantez veya True/False gibi JSON dışı değerler buna yol açabilir. Önce JSON format aracı ile sözdizimini kontrol edin.
Unflatten sonrasında yapı bozuluyor
Muhtemelen orijinal anahtarlarda seçili ayırıcı zaten vardı. Farklı bir ayırıcı seçin veya bu anahtarları dönüşüm öncesi kaçışlayın.
Diziler açıldığında CSV çok genişliyor
Dizileri indekslere göre açmak çok sayıda alan oluşturur. Daha kompakt bir tablo istiyorsanız diziyi tek değer olarak koruma seçeneğini kullanın.
Büyük JSON dosyalarında tarayıcı yavaşlıyor
Çok büyük JSON verileri fazla bellek tüketir. Veriyi parçalara ayırın veya `jq`, Python ya da Node.js gibi yerel araçlarla işleyin.
- JSON Compress
- CSV'den JSON'a
- JSON'den CSV'ye
- JSON Diff
- JSON Escape / Unescape
- JSON Düzleştirme
- JSON Biçimlendirici
- JSON Oluşturucu
- JSONPath Sorgu
- JSON Birleştir
- JSON Onarımı
- JSON Schema Doğrulayıcı
- JSON Sıralama
- JSON Stringify
- JSON'dan HTML'ye
- JSON'dan Java'ya
- JSON'den Markdown'a
- JSON to SQL
- JSON'dan TOML'e
- JSON'dan TypeScript'e
- XML'den JSON'a
- JSON'u XML'e donustur
- YAML'den JSON'a
- JSON → YAML Dönüştürücü
- JSON'dan Go'ya
- JSON'u Rust'a
- JSON to Swift
- JSON'dan C#'ye
- JSON'dan C++'ya
- JSON'dan PHP'ye
- JSON'u Python'a