İçeriğe atla
TextArray
%100 yerel

XML'den JSON'ye dönüştürücü

XML'i, özniteliklerin ön eki ve diziler halinde tekrarlanan etiketlerle eşdeğer JSON'a dönüştürün.

Giriş
Çıkış

XML'den JSON'ye dönüştürücü

XML ve JSON'un her ikisi de yapılandırılmış verileri tanımlar, ancak etrafınızdaki araçlar nadiren her ikisini de konuşur. Eski bir SOAP API, bir RSS beslemesi, bir Android düzeni, bir yapılandırma dosyası veya bir veri aktarımı size XML'i verir; betiğiniz, veritabanınız veya ön yüzünüz JSON istiyor. Bu araç, XML'in tuhaf kısımlarını doğru bir şekilde işleyen gerçek bir regex hack'i değil, bunlar arasında dönüşüm yapar: iç içe öğeler, nitelikler, karışık içerik, kendi kendine kapanan etiketler, yorumlar, CDATA bölümleri, XML bildirimi ve DOCTYPE.

Haritalama yaygın olarak kullanılan konvansiyonu takip eder. Bir öğenin öznitelikleri @ (yapılandırılabilir) ön ekine sahip anahtarlar haline gelir, dolayısıyla <user id="7"> "@id": "7" değerini verir. Alt öğeler nesneler olarak iç içe geçer; bir etiket tekrarlandığında (arka arkaya üç <item> öğesi) tek bir diziye daraltılır; bu da tam olarak listeler için istediğiniz şeydir. Yalnızca metin içeren bir öğe düz bir dizeye dönüşür; hem metni hem de nitelikleri olan, metnini #text anahtarının altında tutar. & gibi varlıkların ve A gibi sayısal referansların kodu çözülür ve CDATA içeriği tam anlamıyla alınır.

Gerçek bir özyinelemeli-inişli ayrıştırıcı olduğundan, çıktıyı sessizce karıştırmak yerine, kökten sonra satır numarasında açık bir hata ürettikten sonra eşleşmeyen bir kapanış etiketi, sonlandırılmamış bir yorum veya başıboş içerik okuduğunu doğrular. Okunabilir bir sonuç için iki veya dört boşluklu girintiyi seçin veya gömme için tek satıra küçültün.

Her şey tarayıcınızda yerel olarak çalışır; verileriniz asla cihazınızdan ayrılmaz; bu, genellikle kayıtları ve tanımlayıcıları taşıyan XML dışa aktarmaları için önemlidir.

FAQ

JSON'da XML nitelikleri nasıl temsil edilir?
Varsayılan olarak @ ön ekine sahip tuşlar olarak (ön eki değiştirebilirsiniz). Böylece <book lang=tr"> { "book": { "@lang": "tr" } } olur. Bu, xml-js ve porsuk balığı gibi kitaplıklar tarafından kullanılan kuraldır, dolayısıyla çıktı çoğu araç zincirinde düşer.
Tekrarlanan etiketlere ne olur?
Bir dizi haline geliyorlar. Üç <item> alt öğesi "item" olarak daraltılır: [ … ], bir listenin ihtiyaç duyduğu şey budur. Bir kez görünen etiket tek bir değer olarak kalır; bunun, XML → JSON'un doğasında olan, farklı şekillerle birkaç eşleme içeren bir öğe ve başka bir öğe içeren bir belge anlamına geldiğini unutmayın.
Karışık içerik ve CDATA'yı işliyor mu?
Evet. Hem metni hem de çocukları (veya nitelikleri) olan bir öğe, metnini #text anahtarının altında tutar. CDATA bölümleri kelimenin tam anlamıyla alınır, böylece <raw> işaretlemesi ve & karakterleri ayrıştırılmadan hayatta kalır. Yorumlar ve işleme talimatları atlanır.
Dönüştürmek yerine neden bir hata bildirdi?
Doğrulayıcı bir ayrıştırıcıdır: eşleşmeyen bir kapatma etiketi, tırnak içine alınmamış bir öznitelik, sonlandırılmamış bir yorum veya kök öğeden sonraki içerik, satır numaralı bir mesajla dönüşümü durdurur. Bu kasıtlıdır; yanlış ama sessiz bir dönüşüm, açık bir hatadan daha kötüdür.
XML'im herhangi bir yere yüklendi mi?
Hayır. Ayrıştırma ve dönüştürme tamamen tarayıcınızda gerçekleştirilir ve verileriniz hiçbir zaman cihazınızdan ayrılmaz.