JSON Anahtar Sıralayıcı
JSON belgesindeki her nesnenin anahtarlarını alfabetik sıraya sokun, iç içe nesneler dahil — diff'leri temizler, ayar dosyalarını taranabilir yapar.
932 görüntülenme
Nasıl Çalışır
JSON'u yapıştırın, her nesnenin anahtarları alfabetik sırayla geri gelsin. Önemli olan kısım, bu sıralamanın recursive (özyinelemeli) olmasıdır: araç yalnızca en üst seviyedeki nesnenin anahtarlarını yeniden sıralayıp durmaz — her derinlikteki her iç içe nesnenin içine girer ve her birini bağımsız olarak alfabetikleştirir. Yalnızca en dış seviyeyi sıralamak, bir belgenin iç yapısını dokunulmamış bırakır, bu da düz bir nesneden daha karmaşık herhangi bir şey için amacı boşa çıkarır; gerçek dünyadaki JSON (API yanıtları, ayar dosyaları) neredeyse her zaman birkaç seviye iç içedir.
Örneğin {"user":{"zip":"1","name":"A"},"active":true} girdisi verildiğinde, araç yalnızca en üstte active'ı user'dan önceye taşımakla kalmaz — aynı zamanda user nesnesinin içine de girer ve name'i zip'ten önceye alır, sonuçta {"active":true,"user":{"name":"A","zip":"1"}} ortaya çıkar. Diziler dokunulmadan bırakılır: eleman sıraları tam olarak korunur, çünkü dizi sırası anlam taşır (diziler tanım gereği sıralıdır), oysa JSON spesifikasyonuna göre nesne anahtar sırası anlam taşımaz.
Bilinmesi Gerekenler
Ana kullanım alanı, diff'leri ve sürüm kontrolü kıyaslamalarını anlamlı kılmaktır. Aynı veriyi tutan ama anahtarları farklı sırada serileştirilmiş iki JSON belgesi, doğrudan kıyaslandığında hiçbir şey gerçekte değişmemiş olsa bile devasa, gürültülü bir metin diff'i üretir — her satır farklı görünür. Her ikisini de önce bu sıralayıcıdan geçirmek bu gürültüyü ortadan kaldırır: anahtarlar aynı alfabetik sırada olduğunda, düz metin diff'i yalnızca gerçek içerik değişikliklerini gösterir, tesadüfi yeniden sıralamayı değil. Ayar dosyalarını elle düzenlemek veya tanıdık olmayan bir API yanıtını daha kolay taranabilir yapmak için de aynı derecede kullanışlıdır.
Sıkça Sorulan Sorular
Bu veriyi mi değiştiriyor, yalnız sırayı mı?
Yalnız anahtar sırası değişir — değerler, iç içelik ve dizi içerikleri dokunulmamış kalır. JSON nesneleri spesifikasyona göre sırasızdır; bu yüzden bu her zaman güvenli, kırmayan bir dönüşümdür.
Sıralama iç içe nesnelere de mi uygulanıyor, yoksa yalnız en üst seviyeye mi?
Tamamen recursive'dir — her derinlikteki her nesne, yalnızca en dıştaki değil, kendi anahtarlarını bağımsız olarak alfabetikleştirir. Yalnızca en üst seviyeyi sıralamak, iç nesneleri orijinal, muhtemelen tutarsız sırasında bırakırdı.
JSON'um geçersizse ne olur?
Sessiz başarısızlık yerine net bir ayrıştırma hatası görürsünüz — işaret ettiği sözdizimi sorununu düzeltip tekrar deneyin.
Dizileri de sıralıyor mu?
Hayır — dizi eleman sırası tam olarak korunur, çünkü diziler tanım gereği sıralıdır ve yeniden sıralamak anlamı değiştirir. Yalnız nesne anahtarları alfabetikleştirilir.
İki dosyayı kıyaslamadan önce JSON anahtarlarını neden sıralamalıyım?
Düz metin diff araçları satır satır kıyaslama yapar, bu yüzden aynı veriyi tutan ama anahtarları farklı sırada olan iki JSON dosyası, hiçbir şey anlamlı değişmemiş olsa bile diff'te neredeyse tamamen farklı görünür. Her iki dosyanın anahtarlarını aynı şekilde sıralamak bu gürültüyü ortadan kaldırır ve yalnızca gerçek içerik değişikliklerini yansıtan bir diff bırakır.
Benzer Araçlar
Sorun Bildir
JSON Anahtar Sıralayıcı
Yorumlar
Henüz yorum yok — ilk yorumu siz yazın!