XML'den JSON'a

Ücretsiz online XML'den JSON'a aracı, tarayıcının yerleşik DOMParser API'sini kullanarak XML'i ayrıştırır ve otomatik olarak standart JSON nesnesine dönüştürür. XML öznitelikleri doğrudan alanlara eşlenir, tekrarlayan öğeler otomatik olarak diziye birleştirilir, öğe metinleri value alanına yerleştirilir; aynı anda JSON ve YAML çift format çıktısı, prettyPrint biçimlendirme ve XML hata otomatik onarımı desteklenir. Tüm işlemler tarayıcıda yerel olarak gerçekleşir.

İlgili Öneriler

XML'den JSON'a Hakkında: XML Verilerini Otomatik Olarak Standart JSON Nesnesine Dönüştürme

XML'den JSON'a, XML (eXtensible Markup Language) formatındaki verileri (SOAP mesajları, RSS beslemeleri, yapılandırma dosyaları) JSON (JavaScript Object Notation) nesnelerine dönüştürme işlemidir. XML, kurumsal sistemler, SOAP Web Service, yapılandırma dosyaları ve Office belgelerinin geleneksel veri formatıdır; JSON ise modern Web API'leri, JavaScript ve NoSQL veritabanlarının fiili standardıdır. İki formatın kendine özgü avantajları vardır: XML sıkı bir şekilde kendi kendini tanımlar, ad alanlarını ve şema doğrulamayı geniş ölçüde destekler; JSON ise basit ve ayrıştırması kolaydır, JavaScript ile doğal olarak uyumludur. Geliştirme sürecinde genellikle XML mesajlarını modern ön uç veya mikro hizmetlerde kullanmak üzere JSON'a dönüştürmek gerekir; bu araç bu süreci otomatikleştirmek için tasarlanmıştır.

Bu aracın çekirdeği, tarayıcının yerleşik DOMParser'ını kullanarak XML'i ayrıştırmak ve DOM ağacını otomatik olarak gezerek JSON nesnesi üretmektir. DOMParser, tarayıcının yerleşik XML ayrıştırıcısıdır, W3C DOM standardını izler ve XML ad alanları, CDATA, yorumlar, öznitelikler dahil tüm XML 1.0 özelliklerini destekler. DOM tabanlı ayrıştırmanın avantajı sıfır bağımlılık, iyi performans ve standartlara uygunluktur.

Dönüşüm eşleme kuralları oldukça sezgiseldir: her XML öğesi bir JSON nesnesine dönüşür, öğenin öznitelikleri doğrudan nesnenin alanlarına dönüşür (@ öneki kullanılmaz, yaygın karmaşık adlandırma kurallarından kaçınılır); öğenin metin içeriği value alanına yerleştirilir; aynı isimli tekrarlayan öğeler otomatik olarak diziye birleştirilir. Örneğin <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> → {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}}.

Öznitelik eşlemede öneksiz doğrudan model kullanmak bu aracın temel tasarım tercihidir. Birçok XML dönüştürme aracı, öznitelikleri ve metni ayırt etmek için @attribute, #text gibi özel önekler kullanır; bu doğru olsa da ortaya çıkan JSON yapısı tuhaf görünür ve JavaScript'te doğrudan kullanımı zordur. Bu aracın doğrudan öznitelik eşlemesi, üretilen JSON'u gerçek iş veri modeline daha yakın hale getirir; geliştiriciler doğrudan TypeScript interface içinde karşılık gelen türleri tanımlayabilir.

Tekrarlayan öğelerin dizileştirilmesi, XML'den JSON'a dönüşümün bir diğer temel tasarımıdır. XML'in yerleşik dizi kavramı yoktur; liste verilerini tekrarlayan öğelerle (birden fazla <item> gibi) ifade eder. Bu araç, aynı ebeveyn altındaki aynı etiket adına sahip tekrarlayan öğeleri otomatik olarak algılar ve bunları bir dizide birleştirir; bu, JSON'un liste semantiğiyle uyumludur ve veri kaybını veya manuel birleştirme ihtiyacını önler.

Çift format çıktı (JSON + YAML), bu aracın farklılaştırıcı tasarımıdır. YAML, Kubernetes, Docker Compose, Ansible, GitHub Actions gibi yapılandırma senaryolarında yaygın olarak kullanılan bir diğer popüler veri serileştirme formatıdır. Araçta basit bir YAML dönüştürücü yerleşiktir; standart 2 boşluk girinti, liste öneki - ve anahtar-değer ayırıcısı : destekler. JSON/YAML geçiş düğmesine tıklayarak iki format arasında anında geçiş yapabilirsiniz.

XML hata otomatik onarımı (tryFixXML), aracın hata toleransını artırır. Gerçek dünyada kullanıcıların girdiği XML'de genellikle XML bildirimi (<?xml version="1.0"?>) eksiktir veya kendi kendine kapanan etiketler (<br>, <img> gibi) XML tarzı <br /> yerine HTML tarzı <br> olarak kullanılır. Araç, XML bildirimini otomatik olarak ekler ve kendi kendine kapanan etiketlerin / işaretini tamamlar; böylece daha fazla düzensiz XML DOMParser tarafından doğru şekilde ayrıştırılabilir.

XML biçimlendirme ve sıkıştırma (formatXML/compressXML), xml-formatter kütüphanesine dayanır. prettyPrint modu 2 boşluk girintili, satır sonları korunmuş okunabilir XML çıktısı üretir; sıkıştırma modu ise boşluksuz, tek satırlık kompakt XML çıktısı üretir, ağ iletimi için uygundur. Geliştiriciler, XML'i sıkıştırdıktan sonra doğrudan veritabanında saklayarak %30-50 depolama alanı tasarrufu sağlayabilir.

Gerçek zamanlı otomatik dönüşüm, aracın pratik özelliğidir. XML girdisinden 500 ms sonra debounce ile otomatik olarak dönüşüm tetiklenir; 6 klavye kısayoluyla (macOS ⇧⌘+F/C/T/O/D/K) birlikte kullanıcılar, fare tıklaması yapmadan biçimlendirme, sıkıştırma, dönüştürme, yükleme, indirme, temizleme gibi yaygın işlemleri hızla tamamlayabilir.

Saf tarayıcı içi yerel işleme, bu aracın çekirdek mimarisidir. Tüm XML ayrıştırma, DOM gezme, JSON serileştirme ve YAML dönüşümü tarayıcı JavaScript'inde yürütülür; DOMParser tarayıcı tarafından yerel olarak sağlanır (XML ayrıştırma kütüphanesi paketlemeye gerek yoktur), xml-formatter ise hafif bir npm paketidir (30 KB'tan az). Ham XML verileri hiçbir sunucuya yüklenmez; hassas SOAP mesajları (sipariş bilgileri, kullanıcı verileri içerenler gibi) yerel olarak güvenli bir şekilde işlenebilir.

Kullanım senaryoları

  • Yalnızca XML yanıtı döndüren ödeme ağ geçitleri, ERP, CRM gibi eski kurumsal API'lerle entegrasyonda XML mesajlarını hızla JSON'a dönüştürerek modern ön uç veya Node.js arka uçta kullanmak.
  • RSS / Atom beslemelerini JSON'a ayrıştırarak Web ön uçta görüntülemek, birleşik feed okuyucuda toplamak veya veritabanına aktarmak.
  • Spring, Tomcat, Apache gibi Java uygulamalarının XML yapılandırma dosyalarını (web.xml, applicationContext.xml) okuyup JSON'a dönüştürdükten sonra jq ile sorgulamak veya diğer araçlara aktarmak.
  • SOAP 1.1/1.2 protokolünün XML yanıtlarını JSON'a dönüştürerek Node.js'in jsonwebtoken, lodash gibi kütüphaneleriyle sonraki işlemleri yapmak.
  • Maven'ın pom.xml, Ant'ın build.xml gibi derleme betiklerini JSON'a ayrıştırarak proje meta veri görselleştirme, bağımlılık analizi vb. amaçlarla kullanmak.
  • RSS feed, Sitemap XML, Atom beslemelerini JSON formatına dönüştürüp Elasticsearch, MongoDB gibi modern veritabanlarında depolamak.
  • Sağlık ve finans sektörlerindeki HL7, ISO 20022 gibi XML tabanlı endüstri standardı veri formatlarıyla entegrasyonda XML mesajlarını JSON'a dönüştürerek modern mikro hizmetlerde işlemek.
  • Google Merchant Center, Sitemap.org gibi SEO ile ilgili XML dosyalarını (sitemap.xml, robots.xml) JSON'a dönüştürerek web kazıyıcı veya analiz araçlarında kullanmak.

Nasıl Kullanılır

  1. Sol taraftaki giriş alanına XML içeriğini yapıştırın, veya "Yükle" düğmesine tıklayarak .xml/.txt dosyası seçin, veya "Örnek" düğmesine tıklayarak yerleşik bookstore örneğini yükleyin.
  2. Araç otomatik olarak dönüşüm yapar (girişten 500 ms debounce); sağ tarafta dönüştürülmüş JSON veya YAML çıktısını görüntüleyin, CodeMirror sözdizimi vurgulama okumayı kolaylaştırır.
  3. Sağ araç çubuğundaki JSON / YAML düğmelerine tıklayarak çıktı formatını anında değiştirin. Ayrıca "Biçimlendir" (⇧⌘+F) veya "Sıkıştır" (⇧⌘+C) düğmelerini kullanarak XML girdisinin biçimini ayarlayabilirsiniz.
  4. "Kopyala" düğmesine tıklayarak JSON/YAML'ı panoya kopyalayın, veya "İndir" düğmesine tıklayarak ilgili uzantılı dosya olarak kaydedin (output.json / output.yaml / output.xml).
  5. XML sözdizimi hatalarını düzeltmek için hata uyarısının yanındaki "Düzelt" düğmesine tıklayın (veya araç çubuğundaki "Örnek" yanındaki açılır menüden); araç tryFixXML işlevini çağırarak XML bildirimi ekler ve kendi kendine kapanan etiketleri tamamlar.
  6. JSON'u hedef koda yapıştırın (TypeScript interface tanımları, API yanıt türleri vb. gibi) veya daha fazla işlem için arka uç hizmetine aktarın.

Özellikler

  • Akıllı DOM ağacı ayrıştırma: Tarayıcının yerleşik DOMParser'ı ile XML'i ayrıştırır, düğüm ağacını otomatik olarak gezerek standart JSON nesnesi üretir, sıfır bağımlılık.
  • Doğrudan öznitelik eşleme: XML öznitelikleri (id="1", category="fiction" gibi) doğrudan JSON nesnesinin normal alanlarına dönüşür, @ öneki gerekmez.
  • Tekrarlayan öğeleri dizileme: Aynı isimli tekrarlayan XML öğeleri otomatik olarak JSON dizisine birleştirilir ({book: [{...}, {...}]}), yaygın veri yapısı kurallarıyla uyumlu.
  • Metin düğümü çıkarma: Öğe metin içeriği otomatik olarak value alanına yerleştirilir, öznitelikler ve alt öğelerle yan yana korunur.
  • Çift format çıktı: Tek tıkla JSON (prettyPrint 2 boşluk girinti) ve YAML (2 boşluk girinti, liste öneki -) arasında geçiş yapın, farklı uygulama senaryolarına uyum sağlar.
  • XML hata otomatik onarımı: Yerleşik tryFixXML işlevi, eksik XML bildirimini otomatik ekler, br/hr/img gibi kendi kendine kapanan etiketleri tamamlar.
  • XML biçimlendirme ve sıkıştırma: xml-formatter kütüphanesi ile prettyPrint okunabilir çıktı ve minify sıkıştırılmış çıktı (2 boşluk girinti veya boşluksuz) desteklenir.
  • Gerçek zamanlı otomatik dönüşüm: XML girdisinden 500 ms sonra debounce ile otomatik dönüşüm, manuel tıklama gerekmez, çıktı gerçek zamanlı güncellenir.
  • JSON/XML çift sözdizimi vurgulama: Sol tarafta CodeMirror XML sözdizimi vurgulama, sağ tarafta formata göre JSON veya YAML vurgulama.
  • Tam kısayol sistemi: Biçimlendir/Sıkıştır/Dönüştür/Yükle/İndir/Temizle için 6 yaygın kısayol, macOS ve Windows/Linux desteği.
  • Kopyala ve indir: Tek tıkla panoya kopyalayın veya standart output.json/output.yaml/output.xml dosyası olarak indirin (geçerli formata göre uzantı otomatik seçilir).
  • Saf tarayıcı içi yerel işleme: Tüm XML ayrıştırma, DOM gezme, JSON serileştirme işlemleri tarayıcı JavaScript'inde gerçekleşir, ham veriler sunucuya yüklenmez, DOMParser tarayıcı tarafından yerel olarak sağlanır.

Sık Sorulan Sorular

XML'i JSON formatına nasıl dönüştürebilirim?

XML içeriğini sol taraftaki giriş alanına yapıştırın; araç, tarayıcının yerleşik DOMParser'ı ile XML'i ayrıştırır ve DOM ağacını otomatik olarak standart bir JSON nesnesine dönüştürür. Kök düğüm { [tagName]: {...} } ile sarılır, öznitelikler normal alanlara eşlenir (@ öneki olmadan), öğe metinleri value alanına yerleştirilir, aynı isimli tekrarlayan öğeler otomatik olarak diziye birleştirilir. Girişten 500 ms sonra otomatik olarak dönüşüm gerçekleşir, manuel olarak tıklama gerekmez.

XML'deki öznitelikler ve metin düğümleri nasıl dönüştürülür?

Bu araç sezgisel bir eşleme modeli kullanır: XML öznitelikleri doğrudan JSON nesnesinin normal alanlarına eşlenir (örneğin <book id="1"> → {id: "1", ...}), @ öneki kullanılmaz; öğenin metin içeriği value alanına yerleştirilir (örneğin <title>Great Gatsby</title> → {value: "Great Gatsby"}). Öznitelik ve metin bir arada olduğunda, ikisi aynı nesnede yan yana bulunur.

XML'de aynı isimli birden fazla tekrarlayan öğe otomatik olarak JSON dizisine mi dönüşür?

Evet. Araç, aynı ebeveyn öğe altındaki aynı etiket adına sahip birden fazla öğeyi (örneğin <bookstore> altındaki 3 adet <book>) otomatik olarak algılar ve bunları bir JSON dizisinde birleştirir. Örneğin <bookstore><book>...</book><book>...</book></bookstore> → {bookstore: {book: [{...}, {...}]}}. Bu kural, XML işlemede en yaygın veri yapısıyla eşleşir.

Salt metin düğümleri nasıl işlenir?

Bir XML öğesinin özniteliği yok, sadece metin içeriği varsa, araç doğrudan metin dizesini döndürür (örneğin <name>Alice</name> → "Alice"). Öğenin hem özniteliği hem metni varsa, öznitelik ve metin aynı nesnede yan yana yer alır ({attr: "...", value: "..."}). Öğenin alt öğeleri varsa, alt öğeler nesne alanları olarak eklenir ve metin içeriği value alanında birleştirilir.

Düzgün biçimlendirilmemiş (kapanış etiketi eksik vb.) XML dönüştürülebilir mi?

Evet. Araçta yerleşik tryFixXML onarma işlevi bulunur; eksik XML bildirimini (<?xml version="1.0" encoding="UTF-8"?>) otomatik olarak ekler ve br, hr, img gibi yaygın kendi kendine kapanan etiketlerin / işaretini tamamlar. Bu tasarım, eski sistemler ve düzgün biçimlendirilmemiş üçüncü taraf arayüzleriyle uyumluluğu önemli ölçüde artırır.

Hangi XML dosya türleri desteklenir?

.xml ve .txt dosyaları (UTF-8 kodlaması) desteklenir. "Yükle" düğmesine tıklayarak yerel bir dosya seçin; araç, tarayıcının yerleşik FileReader API'si ile okur, sunucuya yüklemez. Yükleme başarılı olduktan sonra içerik otomatik olarak giriş alanına doldurulur ve otomatik dönüşüm tetiklenir.

Aynı anda hem JSON hem YAML çıktısı alabilir miyim?

Evet. Araç, JSON ve YAML çift format çıktısını destekler. Sağ taraftaki araç çubuğundaki JSON/YAML geçiş düğmesine tıklayarak çıktı formatını anında değiştirebilirsiniz. JSON formatı 2 boşluklu prettyPrint ile gelir; YAML formatı standart 2 boşluk girinti, liste öneki - ve anahtar-değer ayırıcısı : kullanır, doğrudan Kubernetes, Docker Compose, Ansible vb. yapılandırma senaryolarında kullanılabilir.

İndirilen dosyanın adı nedir?

Geçerli çıktı formatına göre uzantı otomatik olarak seçilir: JSON formatı seçildiğinde output.json, YAML formatı seçildiğinde output.yaml indirilir; giriş yapılmış ancak dönüştürülmemişse output.xml indirilir (orijinal format korunur). Tüm dosyalar UTF-8 kodlamalıdır ve ilgili formatın ayrıştırıcısı tarafından doğrudan okunabilir.

Hangi klavye kısayolları desteklenir?

Araç şu kısayolları destekler: macOS kullanıcıları için ⇧⌘+F Biçimlendir, ⇧⌘+C Sıkıştır, ⇧⌘+T Dönüştür, ⇧⌘+O Yükle, ⇧⌘+D İndir, ⇧⌘+K Temizle; Windows/Linux kullanıcıları ⌘ yerine Ctrl tuşunu kullanır. Toplam 6 kısayol, iş akışının tamamını kapsar.

XML ad alanı (namespace) destekleniyor mu?

Bu araç, XML'i DOMParser ile ayrıştırdığı için XML ad alanlarını (xmlns) doğal olarak destekler. Ad alanı öneki, öğe adının bir parçası olarak JSON'da korunur; örneğin <svg:circle> → {"svg:circle": {...}}. Ad alanları arası öğelere erişmek için JSON ayrıştırma tarafında ad alanı önekiyle tanımlamanız gerekir.

CDATA bölümleri destekleniyor mu?

Evet. CDATA bölümlerindeki (<![CDATA[...]]>) içerik, DOMParser tarafından otomatik olarak öğenin textContent'ine birleştirilir; araç, normal metin düğümleri gibi işleyerek JSON'ın value alanına çıkarır. Ancak CDATA bir XML düğüm türü olduğundan (dize değil), orijinal CDATA ile normal metin JSON çıktısında ayırt edilemez.

Hangi giriş dosyası boyutları desteklenir?

Teorik olarak sabit bir üst sınır yoktur; tarayıcı belleğiyle sınırlıdır. Genellikle 1-2 MB'a kadar olan XML dosyaları akıcı şekilde işlenir; daha büyük dosyalar DOMParser'ın bellek kullanımı nedeniyle yavaşlayabilir. Büyük SOAP mesajları veya RSS feed'leri işlerken takılma olursa, önce yerel bir XML düzenleyicide sadeleştirmeniz veya bölmeniz önerilir.

Sorun Giderme

JSON ayrıştırmada 'unclosed token' hatası mı alıyorsunuz?

Nedeni genellikle XML'de kapanış etiketinin eksik olması, öznitelik tırnaklarının eşleşmemesi veya özel karakterlerin kaçış yapılmamasıdır. Hata uyarısının yanındaki "Düzelt" düğmesine tıklayarak tryFixXML işlevini çağırın; XML bildirimi eklenir ve kendi kendine kapanan etiketler tamamlanır. Hala ayrıştırılamazsa, XML yapısını manuel olarak kontrol edin veya tarayıcı geliştirici araçlarında document.documentElement.outerHTML ile ayrıştırma sonucunu görüntüleyin.

Özniteliklerin sırası JSON'da XML'dekiyle aynı değil mi?

JSON standardı öznitelik sırasını garanti etmez; araç, öğe özniteliklerini kaynak kod sırasına göre eşler. İş mantığı sıra hassasiyetine sahipse, ayrıştırılan JSON'da Lodash'ın toPairs veya benzeri bir araç kullanarak sıralı bir diziye yeniden oluşturmanız önerilir. Ancak çoğu JavaScript motoru (V8, SpiderMonkey) dize anahtarlarını ekleme sırasına göre korur.

Aynı isimli öğe tek olduğunda diziye dönüşmüyor, nasıl işleyebilirim?

Araç şu anda yalnızca aynı isimli tekrarlayan öğeleri algıladığında diziye dönüştürür; tek bir aynı isimli öğe varsa tek bir nesne olarak bırakır. Zorla dizileştirme (tek öğe olsa bile) gerekiyorsa, dönüşümden sonra lodash'ın castArray işleviyle sarabilirsiniz: [result].flat() veya JSON Schema doğrulamasıyla zorunlu dizi yapabilirsiniz.

XML özniteliklerindeki özel karakterleri (<, & gibi) nasıl koruyabilirim?

DOMParser, öznitelik değerlerini otomatik olarak ters-kaçış yapar; araç, ters-kaçış yapılmış içeriği korur. Orijinal XML'de &lt; yazıyorsa, dönüşümden sonra JSON'daki değer < olur. Bu, XML standart davranışıdır ve kullanıcı beklentisiyle uyumludur. Orijinal kaçış biçimini korumak istiyorsanız, xml-formatter kütüphanesini veya kendi yazdığınız bir XML tokenizer'ı DOMParser yerine kullanabilirsiniz.

YAML çıktısında neden tür bilgisi yok?

YAML formatı türleri destekler (12 sayı, true mantıksal, null boş gibi), ancak bu aracın basit YAML dönüştürücüsü tüm değerleri dize olarak serileştirir. Türleri korumak istiyorsanız, js-yaml gibi olgun bir YAML kütüphanesi kullanabilir veya ayrıştırma tarafında JSON Schema doğrulamasıyla türleri zorlayabilirsiniz.

XML işleme yönergeleri (PI) içeren girdiler nasıl işlenir?

DOMParser, varsayılan olarak XML işleme yönergelerini (<?xml-stylesheet ...?> gibi) document.firstChild altında ProcessingInstruction düğümü olarak korur. Bu araç şu anda yalnızca Element düğümlerini gezer; işleme yönergeleri yok sayılır. Korumak istiyorsanız, kullanmadan önce document.firstChild.nodeValue değerini manuel olarak çıkarabilirsiniz.

İndirilen .json dosyasını neyle açabilirim?

İndirilen output.json dosyası UTF-8 kodlamalı standart bir JSON dosyasıdır; herhangi bir metin düzenleyici (VS Code, Sublime, Notepad++) veya profesyonel JSON aracı (jq, JSDoc) ile açabilirsiniz. Biçimlendirilmiş yapıyı görmek için doğrudan tarayıcıya sürükleyebilirsiniz. JavaScript, Python, Node.js, Java, Go gibi neredeyse tüm programlama dilleri yerleşik JSON ayrıştırıcıya sahiptir.

Sözlük

XML (eXtensible Markup Language)
Genişletilebilir İşaretleme Dili, W3C tarafından 1998'de standartlaştırılmıştır. Veri yapısını ve içeriğini açılı ayraç etiketleriyle tanımlar, ad alanları, Schema doğrulama ve XSLT dönüşümünü destekler. SOAP Web Service, Office Open XML, RSS ve Atom'un standart formatıdır.
JSON (JavaScript Object Notation)
JavaScript nesne sözdizimine dayanan ancak programlama dilinden bağımsız hafif veri değişim formatı. Nesne ({}), dizi ([]), dize, sayı, mantıksal ve null olmak üzere altı temel türü destekler. Modern Web API'leri, NoSQL veritabanları ve JavaScript ekosisteminin fiili standardıdır.
DOMParser
Tarayıcının yerleşik API'si (W3C DOM standardı), XML veya HTML dizelerini DOM ağacına ayrıştırır. Tüm modern tarayıcılar (Chrome, Firefox, Safari, Edge) yerleşik olarak destekler, üçüncü taraf kütüphane gerekmez. DOM ağacı üzerinden XML içeriğini kolayca gezebilir, sorgulayabilir ve değiştirebilirsiniz.
xml-formatter
XML belgelerini biçimlendirmek (prettyPrint) ve sıkıştırmak (minify) için kullanılan hafif JavaScript kütüphanesi (30 KB'tan az). Özel girinti, satır sonu ve collapseContent seçeneklerini destekler. Bu araç, XML biçimlendirme ve sıkıştırma işlevleri için bunu kullanır.
Öznitelik eşleme (attribute mapping)
XML öğesi özniteliklerinin JSON nesne alanlarına eşlenme biçimi. Bu araç doğrudan eşleme modelini kullanır: <book id="1"> → {id: "1"}, @ öneki kullanılmaz. Daha temiz bir JSON yapısı üretir, TypeScript interface tanımını basitleştirir.
Tekrarlayan öğeleri dizileme
XML'de aynı isimli tekrarlayan öğelerin (birden fazla <item> gibi) otomatik olarak JSON dizisine birleştirilmesi. Bu, XML'den JSON'a dönüşümün temel tasarım kararıdır; JSON'un liste semantiğiyle uyumludur ve veri kaybını önler.
value alanı
Bu aracın XML öğesi metin içeriği için kullandığı alan adı kuralıdır. <title>Great Gatsby</title> öğesi {value: "Great Gatsby"} olarak dönüşür. Öğenin hem özniteliği hem metni varsa, öznitelikler ve value aynı nesnede yan yana yer alır.
YAML (YAML Ain't Markup Language)
İnsan dostu veri serileştirme formatı, Kubernetes, Docker Compose, Ansible, GitHub Actions gibi yapılandırma dosyalarında yaygın olarak kullanılır. Bu araç basit YAML çıktısını destekler; 2 boşluk girinti, liste öneki - ve anahtar-değer ayırıcısı : kullanır.
SOAP (Simple Object Access Protocol)
XML tabanlı Web servis iletişim protokolü. SOAP iletileri bir SOAP zarfı (XML ad alanı) ile sarılır, içinde header ve body (XML yükü) bulunur. Bu araç, SOAP iletilerini modern JavaScript servislerinde kullanmak üzere JSON'a ayrıştırabilir.
RSS / Atom feed
XML tabanlı içerik abonelik formatı. RSS 2.0 formatı içeriği <rss><channel><item> yapısıyla düzenler; Atom ise <feed><entry> yapısını kullanır. Bu araç, RSS/Atom'u ön uçta görüntülemek veya veritabanında toplamak üzere JSON dizisine dönüştürür.
XML ad alanı (namespace)
xmlns özniteliği aracılığıyla öğe adı çakışmalarını önleyen mekanizma, xmlns:prefix="uri" biçimindedir. DOMParser ad alanlarını doğal olarak destekler; ad alanı öneki, öğe adının bir parçası olarak JSON'da korunur.
CDATA bölümü
XML'de <![CDATA[...]]> özel sözdizimi; öğe içinde özel karakterler (<, >, & gibi) içeren metinleri kaçış yapmadan gömmek için kullanılır. DOMParser, CDATA içeriğini öğenin textContent'ine birleştirir; araç bunu normal metin olarak işler.
tryFixXML
Bu araçta yerleşik XML onarma işlevi; eksik XML bildirimini (<?xml version="1.0" encoding="UTF-8"?>) otomatik olarak ekler ve br, hr, img gibi yaygın kendi kendine kapanan etiketlerin / işaretini tamamlar. Eski sistemlerden veya düzensiz üçüncü taraf arayüzlerinden gelen kirli verileri işlemek için kullanılır.
prettyPrint
xml-formatter kütüphanesinin çıktı modu. Etkinleştirildiğinde üretilen XML otomatik olarak girinti ve satır sonları eklenir (örneğin 2 boşluk girinti), okunabilirlik yüksektir; devre dışı bırakıldığında boşluksuz kompakt (minify) çıktı üretilir.

XML Öğelerinden JSON Alanlarına Eşleme Kuralları

Bu aracın DOMParser tabanlı dönüşüm eşleme kuralları:

XML yapısıXML örneğiJSON çıktısıEşleme kuralı
element with attrs<book id="1" category="fiction"/>{"id": "1", "category": "fiction"}Öznitelikler doğrudan nesne alanlarına eşlenir (@ öneki olmadan)
element with text<title>Great Gatsby</title>{"value": "Great Gatsby"}Öğe metin içeriği value alanına yerleştirilir
attrs + text<price currency="USD">12.99</price>{"currency": "USD", "value": "12.99"}Öznitelik ve metin aynı nesnede yan yana bulunur
no attrs, no text<book id="1"/>{"id": "1"}Yalnızca öznitelikler var, value alanı yok
nested elements<book><title>Gatsby</title></book>{"title": {"value": "Gatsby"}}Alt öğeler nesne alanlarına dönüşür
repeated elements<books><book/><book/></books>{"book": [{}, {}]}Aynı isimli tekrarlayan öğeler otomatik olarak diziye birleştirilir
root element<bookstore>...</bookstore>{"bookstore": {...}}Kök düğüm { [tagName]: ... } ile sarılır
namespace prefix<svg:circle/>{"svg:circle": {...}}DOMParser ad alanlarını doğal olarak destekler

JSON ve YAML Çıktı Formatı Karşılaştırması

Bu aracın desteklediği iki çıktı formatının özellikleri ve uygun kullanım senaryoları:

BoyutJSONYAMLAçıklama
Sözdizimi{ } : [ ] kısagirinti + - listeJSON daha kısa, YAML daha okunabilir
Veri türleriyerel number/bool/nullyerel number/bool/nullİkisi de türleri korur
Girinti2 boşluk girinti2 boşluk girintiBu araçta her ikisi de 2 boşluk kullanır
Diziler[1, 2, 3]- 1\n- 2\n- 3JSON köşeli parantez, YAML tire kullanır
Yorumlardesteklemez (standart)# yorumYAML yorumları destekler
Okunabilirlikorta (parantez gürültüsü)yüksek (doğal dile yakın)YAML okunabilirliği daha iyidir
Kullanım senaryosuREST API, ön uç/arka uçK8s, Docker, CI/CDWeb için JSON, yapılandırma için YAML

XML ve JSON Format Karşılaştırması

İki veri formatının farklı boyutlardaki karşılaştırması, XML veya JSON'u ne zaman seçeceğinizi anlamanıza yardımcı olur:

BoyutXMLJSONAçıklama
Sözdizimi< > </> ayrıntılı{ } : [ ] kısaJSON sözdizimi daha kısa, XML etiketleri daha ayrıntılı ama okunabilirliği yüksektir
Veri türlerihepsi dizeyerel number/bool/nullJSON türleri korur, XML şema doğrulamasıyla tür denetimi yapar
Dizilertekrarlayan öğe <i>1</i><i>2</i>yerel [1,2,3]JSON dizileri kısa, XML dizileri adlandırma kuralına bağlıdır
Yorumlar<!-- yorum -->desteklemez (standart)XML yorumları destekler, JSON standardı desteklemez
Ad alanıxmlns destekleryokXML büyük belgelerde ad çakışmalarını önler
Şema doğrulamaXSD / DTDJSON Schemaİkisinin de olgun şema doğrulama mekanizması vardır
Ayrıştırma performansıdaha yavaş (etiket yükü)daha hızlı (~3-5x)JSON ayrıştırması daha basit, XML ayrıştırması daha karmaşıktır
Kullanım senaryosuSOAP, kurumsal, OfficeREST API, ön uç/arka uçModern Web'de JSON, geleneksel kurumsalda XML kullanılır

Privacy & Security

Bu XML'den JSON'a aracında tüm işlemler tamamen tarayıcınızda yerel olarak gerçekleşir: XML ayrıştırma (tarayıcının yerleşik DOMParser'ı tabanlı), DOM ağacı gezme, JSON serileştirme ve YAML dönüşümü tümü tarayıcı JavaScript'i ile istemci tarafında yürütülür; xml-formatter tek harici bağımlılıktır (30 KB'tan küçük bir npm paketi). Ham XML verileri hiçbir sunucuya yüklenmez. Dosya yükleme, tarayıcının yerleşik FileReader API'si ile doğrudan belleğe okunur; herhangi bir aracı hizmetten geçmez. Çerez izleme kullanılmaz, hiçbir kullanıcı girdisi veya kullanım verisi toplanmaz. Sayfayı kapattığınızda veya yenilediğinizde, tüm girdi ve çıktı içerikleri bellekten otomatik olarak temizlenir. Hassas iş verileri (sipariş bilgileri, kullanıcı kimlik bilgileri, kurumsal API yanıtları) içeren XML mesajlarını işlemek için uygundur.

Authoritative References