JSON'ten XML'e
Bir JSON belgesi yapıştırın; seçtiğiniz kök öğe adıyla, diziler için tutarlı bir stratejiyle (tekrarlanan öğeler veya bir sarmalayıcı), isteğe bağlı XML bildirimiyle ve düzgün girintilemeyle XML karşılığını alın. Eski bir sistem XML isterken kaynak verileriniz JSON biçiminde tutuluyorsa oldukça işe yarar.
JSON'ı XML'e nasıl dönüştürürsünüz?
-
1
JSON'u yapıştırın
En üst düzeyde bir nesne veya dizi. Kök öğeye bir ad vereceksiniz.
-
2
Kökü adlandırın
XML tek bir kök öğe gerektirir. Varsayılan değer `<root>`'tur; `<users>` veya `<response>` gibi anlamlı bir ad verin.
-
3
Dizi stratejisini seçin
"Tekrarlanan öğeler" (her dizi öğesi bir kardeş `<item>`'e dönüşür) veya "sarmalayıcı" (dizi, adlandırılmış bir sarmalayıcı öğenin içine yerleştirilir).
-
4
XML'i kopyalayın
İsteğe bağlı XML bildirimi, düzgün girintileme ve `<`, `>`, `&` ile tırnak işaretleri için varlık kaçışlı değerler.
Örnek: tekrarlanan öğeler
Giriş:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
Çıkış:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
Örnek: dizi sarmalayıcı
“dizileri <item> içine sarma” stratejisiyle aynı girdi:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
Tür Haritalaması
| JSON | XML |
|---|---|
| dize | metin içeriği, varlık kaçışlı |
| tam sayı / ondalık | metin içeriği (XML tip ek açıklaması yok) |
| boole | true / false metin olarak |
| null | boş öğe (<foo/>) veya atlanır |
| dizi | tekrarlanan öğeler veya sarmalayıcı + öğeler |
| nesne | alt öğeler içeren iç içe öğe |
Öznitelikler vs öğeler
XML, öznitelikleri (<user id="1">) alt öğelerden (<user><id>1</id></user>) ayırt eder. Dönüştürücü varsayılan olarak öğeleri kullanır; öğeler gidiş-dönüş dönüşümünde kayıpsızdır. Sonraki aşamadaki XML’iniz öznitelik gerektiriyorsa anahtar ön ek kuralını kullanın:
- JSON anahtarı
@id, üst öğedeid="..."adlı bir XML özniteliğine dönüşür. - JSON anahtarı
#text, üst öğenin metin içeriği olur.
Bu kurallar, en yaygın iki JSON’dan XML’e standardı olan BadgerFish ve Parker eşlemelerinden gelir.
Kaçış kuralları
<-><>->>&->&"->"(öznitelik değerlerinde)'->'(isteğe bağlı)- UTF-8’deki baytlar korunur ve XML prologunda bildirilir.
Yaygın hatalar
- Kök düzeyinde bir JSON dizisi. XML tek bir kök öğe gerektirir. Dönüştürücü diziyi
<root>(veya seçtiğiniz herhangi bir ad) içine sarar. - Sayısal anahtarlar. JSON
{"1": "a"}geçerlidir; XML öğe adları bir rakamla başlayamaz. Dönüştürücü, rakamların önüne alt çizgi ekler (_1) ya da özel bir eşleme tanımlamanıza olanak tanır. - Karışık diziler.
[1, "two", { "x": true }]için temiz bir eşleme yoktur. Bu genellikle JSON’un dönüştürülmeden önce normalleştirilmesi gerektiği anlamına gelir. - Devasa belgeler. XML ayrıntılıdır; 10 MB’lık bir JSON, 20-30 MB’lık bir XML’e dönüşebilir. Çok büyük yükler için akışlı dönüştürmeyi değerlendirin.
Sık Sorulan Sorular
XML, belirtim gereği tek bir kök öğe gerektirir. JSON’unuz bir dizi ise veya birden fazla üst düzey anahtar içeriyorsa, dönüştürücü her şeyi adlandırabileceğiniz bir kök öğenin içine sarar (varsayılan <root>).
Evet. JSON anahtarlarınızda @ ön ek kuralını kullanın (örneğin "@id": 1); bu anahtarlar özniteliklere dönüşür, diğer anahtarlar alt öğe olarak kalır. Bu, BadgerFish eşlemesiyle uyumludur.
İki strateji vardır: tekrarlanan kardeş öğeler (her öğe, etiketi olarak üst anahtarı alır) veya içinde <item> öğeleri bulunan bir sarmalayıcı. Hedeflediğiniz XML şemasına uyan hangisiyse onu seçin.
Hayır. Dönüştürücü XML bildirimini (<?xml version="1.0"?>) üretir ancak DOCTYPE üretmez. DTD veya XSD referansı gereken XML için bunu dönüştürmeden sonra elle ekleyin.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Saf JavaScript, React veya Vue için webpack 5 uyumlu bir webpack.config.js oluşturun: TypeScript, Babel, CSS veya Sass, görseller, HtmlWebpackPlugin, geliştirme sunucusu ve npm install satırı.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Tamamlayıcı Renk Bulucusu
Her girdi için tamamlayıcı renk belirleyin. HSL açısından tersi renk, bölünmüş tamamlayıcı çifti ve erişilebilir kombinasyonlar için öneriler geri verir.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Araç diğer dillerde mevcuttur
- JSON do XML [PL]
- แปลง JSON เป็น XML [TH]
- JSON a XML [ES]
- JSONからXMLへ [JA]
- Chuyển đổi từ JSON sang XML [VI]
- JSON에서 XML로 [KO]
- JSON vers XML [FR]
- JSON para XML [PT]
- JSON till XML [SV]
- JSON إلى XML [AR]
- JSON zu XML [DE]
- JSON ke XML [ID]
- JSON naar XML [NL]
- Преобразование JSON в XML [RU]
- JSON 到 XML [ZH]
- JSON to XML [EN]
- JSON in XML [IT]