XML ⇄ JSON Dönüştürücü

Öznitelik işleme, CDATA koruma, BOM, satır sonu ve girinti kontrolüyle çift yönlü XML ↔ JSON

Giriş

Gelişmiş ayarlar

Çıkış

XML ⇄ JSON Dönüştürücü

Öznitelik işleme, CDATA koruma, BOM, satır sonu ve girinti kontrolüyle çift yönlü XML ↔ JSON

Özellikler

  • Otomatik algılama modu yapıştırılan metnin XML mi JSON mu olduğunu sezer ve dönüşümü ters yönde çalıştırır — modu manuel değiştirmeden her iki tarafı yapıştırabilirsiniz
  • İki öznitelik stratejisi: Önek modu XML özniteliklerini yapılandırılabilir bir önekle (varsayılan `@`) kardeş JSON anahtarları olarak yayar, Nesne modu bunları ayrı bir `$` nesnesinde toplar; böylece eleman metni ve öznitelikler çakışmaz
  • CDATA ve metin düğümü işleme: 'CDATA/Metin'i #text olarak işle' açıkken eleman metin içeriği `#text` özelliğine katlanır — karışık içerik JSON gidiş-dönüşünden sağ çıkar; kapalı mod yapısal ayrımı korur
  • Pretty-print geçişi ve seçilebilir girinti (2 / 4 / 8 boşluk) hem JSON hem XML çıkışı için — insan okumak için aç, kompakt taşıma için kapat
  • Satır sonu kontrolü (LF vs CRLF) Unix vs Windows araç uyumluluğu için, artı byte-order işareti gerektiren sistemler için isteğe bağlı UTF-8 BOM geçişi
  • Yapılandırılabilir öznitelik öneki aşağı akış kurallarına uymanızı sağlar: `@` (varsayılan), `_`, `xml:` veya başka bir dize — dönüştürülen çıktıyı mevcut hattınızla uyumlu tutar
  • Çıktı için tek tıkla Kopyala ve İndir (`converted.txt`); dönüştürme hataları satır içi olarak altta yatan ayrıştırıcı mesajıyla yüzeye çıkar — XML'in bozuk olup olmadığını veya JSON'un XML olarak temsil edilemediğini ayırt edebilirsiniz
  • Tamamen istemci tarafı: XML için tarayıcının yerleşik DOMParser'ı, JSON için JSON.parse kullanılır. Ağ çağrısı yok, sayfa önbelleğe alındıktan sonra çevrimdışı çalışır

Nasıl Kullanılır

  1. XML veya JSON'unuzu Giriş paneline yapıştırın. Mod Otomatik algıla'ya ayarlıysa dönüştürücü biçimi otomatik sezer.
  2. Çıktı biçimlendirmesini kontrol etmek için Pretty geçişini ve Girinti boyutunu ayarlayın; alt araçlarınızın gerektirdiği gibi Satır sonunu LF ile CRLF arasında değiştirin.
  3. Öznitelik modunu (Önek veya Nesne) seçmek, Öznitelik önekini ayarlamak ve CDATA/Metin-#text işlemini değiştirmek için Gelişmiş ayarları açın.
  4. Dönüştür'e tıklayın. Çıkış paneli sonucu gösterir; dönüştürme DOMParser + JSON.parse kullanarak tarayıcınızda çalışır.
  5. Sonucu panoya koymak için Kopyala'yı veya `converted.txt` olarak kaydetmek için İndir'i kullanın.
  6. Ayrıştırma başarısız olursa satır içi bir hata satırı altta yatan mesajı gösterir — girdiyi düzeltin ve tekrar dönüştürün.

İpuçları ve En İyi Uygulamalar

  • Bir SOAP servisinden gelen XML yükünü hata ayıklarken Otomatik algıla + Nesne öznitelik modu + CDATA-#text en temiz JSON görünümünü verir.
  • Eski Windows araçlarına yönelik çıktı üretirken Satır sonunu CRLF olarak ayarlayın ve BOM'u etkinleştirin.
  • JSON tüketicileriniz `@` ile başlayan anahtarları reddediyorsa (bazı YAML türevli ayrıştırıcılar reddeder) Öznitelik önekini `@`'dan `_`'ya değiştirin.
  • JSON'dan XML çıktısı elemanları yanlış sırada koyarsa, kaynak JSON'unuzda üst düzey anahtarları istediğiniz sırada yeniden ekleyin.
  • Dönüştürülmüş JSON'u daha fazla incelemek veya dönüştürmek istediğinizde JSON Formatlayıcı ile birleştirin; XML tarafında XML Formatlayıcı'yı kullanın.

SSS

Öznitelik modu JSON çıktısını nasıl değiştirir?

Önek modunda, XML öznitelikleri yapılandırılmış önekle kardeş anahtarlar olarak görünür — `<user id="42"/>` `{ "user": { "@id": "42" } }` olur. Nesne modunda öznitelikler tek bir `$` anahtarı altında toplanır, böylece eleman içeriği ve öznitelik içeriği ad alanını paylaşmaz. Tüketiciler düz anahtar bekliyorsa Önek'i seçin; belirsizlik olmadan öznitelikleri XML'e geri çevirmeniz gerekiyorsa Nesne'yi seçin.

CDATA-#text olarak ne işe yarar?

XML'in metin tutmanın iki yolu vardır — `<a>düz</a>` ve `<a><![CDATA[düz]]></a>`. Seçenek açıkken her iki form da JSON'da bir `#text` anahtarına çöker, böylece `<p>Merhaba <b>dünya</b></p>` gibi karışık içerikli elemanlar JSON gidiş-dönüşünden sağ çıkar. Kapalı yapısal ayrımı korur; orijinal belgenin CDATA işaretlerinin anlamsal olarak önemli olduğu durumlarda kullanışlıdır (örn. gömülü betikler).

BOM geçişi neden önemli?

Bazı Windows araçları (Excel, eski PowerShell, açık kodlamasız .NET TextReader) kodlamayı doğru algılamak için dosyanın başında UTF-8 BOM (`EF BB BF`) bekler. Modern web araçları ve Unix-tarzı boru hatları BOM'u genellikle gürültü olarak işler. BOM-duyarlı bir Windows aracına çıktı veriyorsanız geçişi etkinleştirin, aksi durumda devre dışı bırakın.

LF mi CRLF mi?

Windows araçları ve eski Microsoft biçimleri `\r\n` (CRLF) satır sonu bekler; Unix/Linux/macOS varsayılan olarak `\n` (LF) kullanır. Git genellikle her ikisini normalleştirir, ancak git'i atlayan eserler (indirmeler, Not Defteri'ne yapıştırmalar, derleme çıktıları) açık seçim gerektirir. Otomatik algıla ayrıştırıcı satır sonlarını yok sayar, dolayısıyla bu kontrol yalnızca çıkışı etkiler.

Ad alanları dönüşümden sağ çıkar mı?

Ad alanı önekli eleman ve öznitelik adları gerçek dizeler olarak gidiş-dönüş yapar (örn. `xmlns:soap` `@xmlns:soap` anahtarı olur). Dönüştürücü ad alanlarını URI'lere göre çözmez — aşağı akış hattınız ad alanı çözünürlüğü gerektiriyorsa o adımı ayrı yapın. XML'e geri gidiş-dönüş başladığınız önekleri korur.

Boş elemanlara ne olur?

Boş bir XML elemanı `<a/>` JSON'da `{ "a": null }` olur (veya CDATA-#text açıkken boş metin ve CDATA içeren `<a></a>` ise `{ "a": "" }`). JSON'dan XML'e giderken bir `null` değer kendinden kapanan eleman yayar. CDATA-#text ayarını iki yön arasında değiştirmediğiniz sürece gidiş-dönüş kararlıdır.

JSON-XML çıktımda neden sıralı anahtarlar var?

XML elemanları tanımlı bir sıraya sahiptir; JavaScript nesneleri string anahtarlar için ekleme sırasını korur, bu nedenle dönüştürücü elemanları anahtarların JSON'da göründüğü sırada yazar. JSON bir JSON.parse gidiş-dönüşünden geldiyse sıra kaynakla eşleşir; programlı olarak oluşturduysanız istediğiniz sırada anahtarlar ekleyerek sırayı kontrol edin.

Büyük belgeleri bu sekmede dönüştürmek güvenli mi?

Orta megabayt boyutundaki belgeler bir saniyenin çok altında dönüşür. Çok büyük belgeler (>10 MB) çalışır ancak ayrıştırma süresince UI iş parçacığını sıkıştırır; bu iş yükü için aynı mantığı bir Web Worker'da veya derleme-zamanı betiğinde çalıştırın. Dönüştürme servisi her iki bağlamda da aynıdır.