XML ↔ JSON Dönüştürücü
XML'i JSON'a veya JSON'u XML'e geri dönüştür. Attribute'ları, text node'ları ve dizileri akıllıca işler.
Sonucu görmek için yukarıya giriş yapın.
Bu ne işe yarar?
XML ve JSON iki baskın veri değişim biçimidir ve düzenli olarak aralarında çeviri yapman gerekir — bir SOAP API'den REST'e geçiş, eski feed'leri modern bir yığına bağlama veya sadece JSON konuşan bir araçta XML okuma. Eşleme tarafsız değildir, varsayılan olarak tersinir değildir, çünkü XML JSON'da olmayan özelliklere (nitelikler, karışık içerik, sıralı child'lar) sahiptir. Bu araç geleneksel fast-xml-parser-stili eşlemeyi kullanır: nitelikler bir önek alır (varsayılan @), text node'ları bir anahtara gider (varsayılan #text) ve tekrarlanan child elementler array'lere çöker. Her iki yön de tarayıcında çalışır.
Ne zaman kullanılır
- Bir RSS / Atom / SOAP yanıtını bir JS uygulamasında tüketmek için JSON'a dönüştürme.
- Bir JSON template'tan XML config üretme (build config'leri, Spring bean'leri, OOXML scaffold'lar).
- İç içe değerleri hızlıca çıkarma — XML'i JSON'a dönüştür, sonra bildiğin herhangi bir JSON aracını kullan.
- Veriyi round-trip yapma ve şeklin dönüşümden sağ çıktığını doğrulama.
Sık yapılan hatalar
- Tek child - array. Bir
<item>olan bir belge{"item": {...}}olur; iki olan aynı belge{"item": [..., ...]}olur. Tüketicilerin her iki şekli de işlemesi gerekir. - Element sırası garanti edilmez. JSON nesneleri tüm parser'lar/iletim'ler arasında anahtar sırasını korumaz. XML'in sıra-anlamlı kardeşleri varsa, JSON yanlış hedeftir.
- Karışık içerik çöker.
<p>hello <b>world</b>!</p>gibi bir element round-trip yapmaz — metin ve inline elementler temiz bir nesne temsiline sahip olmayan bir şekilde iç içe geçer. - Nitelik öneki çakışmaları. Bir XML elementinin adı
@ile başlayan bir child'ı varsa, önce öneki başka bir şeye değiştir. - Namespace'ler aynen korunur.
ns:tagJSON anahtarı olarak"ns:tag"kalır.xmlns:nitelikleri de benzer şekilde. - Sayılar ve boolean'lar otomatik dönüştürülmez. XML metni her zaman string'tir;
"1"JSON'da"1"kalır. İhtiyacın varsa uygulama kodunda türleri dönüştür. - JSON → XML tek bir kök anahtar gerektirir. XML tam olarak bir kök element ister; giriş JSON tek bir üst seviye anahtarı olan bir nesne olmalıdır.