XML'den JSON'a Dönüştürücü

Dönüştürmek için XML'inizi aşağıya yapıştırın.

Nasıl hesaplanır?

Araç yapıştırdığınız XML’i ayrıştırır ve ağacını girintili JSON olarak yeniden kurar. Kök öğenin adı ayrıca bildirilir ve JSON içinde anahtar değildir; JSON kökün içeriğiyle başlar. Öznitelikler "@attributes" nesnesine girer. Alt öğesi olan bir öğe, alt öğe adlarıyla anahtarlanmış bir nesne olur. Aynı ad tekrarlanırsa değerler dizi olur ve araya başka öğeler girse bile tekrarlar bir araya toplanır. Yalnızca metin içeren öğe dize olur (sayılar ve true/false da dize kalır), boş öğe ise [] olur. Öznitelik veya alt öğeyle karışık metin "#text" altına yazılır. CDATA metin sayılır, yorumlar atılır. Ad alanlı adlar önekini korur. Düğüm sayısı öğe sayısıdır. Geçersiz XML sonuç vermez.

Örnek hesaplama

<order id="17"><item>Pen</item><item>Ink</item></order> metnini yapıştırın. Kök order’dır; araç bir order ve iki item öğesi sayar, yani düğüm sayısı 3 olur. id="17" özniteliği "@attributes": {"id": "17"} olur. İki item aynı adı taşıdığı için "item": ["Pen", "Ink"] dizisine dönüşür. order etiketinin kendisi bir anahtar değildir. Tek item olsaydı aynı alan dizi değil, düz bir dize olurdu: "item": "Pen".

Bu örneği dene →

Sık yapılan hatalar

  • Kök etiketin en üst anahtar olmasını beklemek. Çıktı kökün içeriğiyle başlar; kök adı yalnızca kök alanında görünür, JSON’u kullanan sistem ihtiyaç duyuyorsa onu kendiniz ekleyin.
  • Tekrarlanan öğenin her zaman dizi olacağını sanmak. Tek <item> dize ya da nesne, iki ve daha fazlası dizi olur; sonucu okuyan kod ikisini de karşılamalıdır.
  • Sayı ve mantıksal değer beklemek. Her değer dize çıkar; <qty>007</qty>, baştaki sıfırlarla birlikte "007" olur.
  • Karışık öğelerin özgün sırasına güvenmek. Aynı adlı kardeşler bir araya toplanır; b, c, b sırası b: [ilk, ikinci], c olarak çıkar.
  • Bozuk XML yapıştırmak: kapanmamış etiket, kaçışsız & ya da iki kök öğe. Ayrıştırıcı kısmi sonuç yerine hiç sonuç vermez; önce işaretlemeyi düzeltin.

Bu hesaplama hakkında

XML ve JSON, her ikisi de yapılandırılmış ve okunabilir veri biçimleridir, ancak bilgiyi farklı şekillerde düzenlerler — XML iç içe etiketler ve öznitelikler kullanırken, JSON iç içe nesneler, diziler ve anahtar-değer çiftleri kullanır — bu yüzden ikisi arasında elle dönüşüm yapmak zahmetli ve hataya açıktır. Bu dönüştürücü, herhangi bir XML belgesini ayrıştırır, öğe ağacında gezinir ve bunu temiz, düzgün biçimlendirilmiş JSON olarak yeniden oluştururken kök öğe adını ve yaklaşık düğüm sayısını da bildirir.

Bu dönüşüm, eski veya üçüncü taraf sistemleri entegre eden geliştiriciler için rutin bir adımdır — birçok eski API, RSS/Atom besleme, SOAP servisi ve kurumsal sistem hâlâ XML kullanırken, günümüzün web ve mobil uygulamalarının çoğu JSON tüketir — bu yüzden örnek bir yanıtı dönüştürmek genellikle bir JSON şemasını taslak hâline getirmenin, yeni bir uç noktayı test etmenin veya XML verisini bir JavaScript ön yüzüne beslemenin en hızlı yoludur.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Tekrarlanan etiket adları tek bir dizide toplandığı için, farklı etiketlerin iç içe geçme sırası korunmaz. Kayıtlar ve beslemeler için sakıncası yoktur; ama sıranın önemli olduğu belgeler, örneğin işaretlenmiş metinler veya farklı etiket türlerini karıştıran adım listeleri, özgün XML'e geri dönüştürülemez. Ayrıca her yaprak değer metin olarak kalır, sayıları ve mantıksal değerleri kendi kodunuzda dönüştürmeniz gerekir. Hangi tür XML'i dönüştürüyorsunuz: bir besleme, yapılandırma dosyası mı yoksa API yanıtı mı?

Popüler hesaplayıcılar

Tüm Hesaplayıcılar