JSON'dan XML'e çevirme

Cihazınızda çalışır · Dosyanız cihazınızdan asla çıkmaz.

JSON yapıştırın ya da bırakın; üstte bildirim ve her anahtar için bir öğe içeren bir XML belgesi alın. En üstte tek anahtar bulunan bir belgede o anahtar kök öğe olur; diğer her şey <root> içine girer. Liste, anahtarının adını taşıyan yinelenen öğeler olur: "items": [..] birkaç <items> öğesi verir; en üst düzeydeki liste <root> altında <item> öğeleri olur.

@ ile başlayan anahtarlar öznitelik, "#text" anahtarı da öğenin metni olur; bu, XML’den JSON’a aracının yazdığı biçimdir, yani orada dönüştürülen bir belge burada aynı XML olarak geri gelir. Diğer her değer öğesinin içinde metindir, null boş öğe olur ve belge her düzeyde iki boşlukla girintilenir. XML’in ad olarak kabul etmediği anahtarlar (rakamla başlayan, boşluk ya da simge içeren) alt çizgiyle temizlenir; sonuç her zaman ayrıştırılır.

Metin doğru kaçışlanır (&, <, > ve özniteliklerde tırnaklar ile satır sonları); XML 1.0’ın hiç tutamadığı denetim karakterleri çıkarılır. Kodlama UTF-8’dir ve indirmeden önce ilk 200 satırı görürsünüz. Hiçbir şey yüklenmez.

JSON'dan XML'e çevirme nasıl yapılır

  1. Bir JSON dosyası bırakın ya da JSON metnini kutuya yapıştırın.
  2. «XML biçimine dönüştür» düğmesine basın.
  3. Önizlemeyi kontrol edin ve .xml dosyasını indirin.

Desteklenen biçimler ve sınırlar

Girdi
JSON (.json): dosya ya da yapıştırılmış metin
Çıktı
XML 1.0, UTF-8, üstte bildirim, girintili
Kök
Tek üst düzey anahtar, yoksa <root>; en üst düzeydeki liste <item> öğeleri olur
Listeler
Anahtarın adını taşıyan yinelenen öğeler
Nerede çalışır
Tarayıcıda – yükleme yok

Şunlar için uygun değildir: Belirli bir XML şemasına uymak (SOAP, RSS, e-Fatura gibi bir standart): öğe adları bir şemadan değil, JSON anahtarlarınızdan gelir.

Anahtarlarınız nasıl öğe adı olur

@ ile başlayan bir anahtar öznitelik olur, "#text" anahtarı da öğenin metni; {"item": {"@id": 3, "#text": "A"}} <item id="3">A</item> verir. Belgenin en üstünde tek bir anahtar varsa o anahtar kök öğe olur; yoksa her şey <root> içine girer.

XML’in bir adda izin vermediği karakter alt çizgiye dönüşür; ilk karakter olarak izin verilmeyen bir karakterle, örneğin bir rakamla başlayan adın önüne de bir alt çizgi eklenir: "1st place" <_1st_place> olur. İki nokta üst üste ancak öneki daha yukarıda bildirilmişse korunur, "@xmlns:soap" gibi; bildirilmemiş bir "soap:Body" <soap_Body> olur, çünkü ad alanlarını tanıyan hiçbir ayrıştırıcı onu başka türlü okuyamazdı. Her yazı sisteminin harflerine izin verilir; "şehir", "اسم" ya da "名前" gibi bir anahtar yazıldığı gibi kalır.

Değerler nasıl görünür

Her değer metin olarak yazılır, sayılar da tam JSON’daki gibi: 1.0 yine 1.0 kalır ve 12345678901234567890 her basamağını korur. null ve boş nesne, ikisi de <note/> gibi boş bir öğe olur; boş liste ise hiçbir şey yazmaz. Yani XML bu üçünü birbirinden ayıramaz.

Denetim karakterleri, yani sekme, satır besleme ve satır başı dışında kodu 32’nin altında kalanlar, XML 1.0’da hiçbir şekilde yazılamaz, &#1; gibi bir sayı olarak bile; bu yüzden çıkarılırlar. Satır başı, ayrıştırıcı onu korusun diye &#13; olarak yazılır. Öznitelik değerlerinde tırnaklar, sekmeler ve satır sonları da başvuru olarak yazılır, çünkü ayrıştırıcı aksi hâlde onları boşluğa çevirirdi.

Liste listeleri gruplamasını kaybeder

Yinelenen öğeler yalnızca tek bir liste düzeyini ifade edebilir. "m": [[1, 2], [3]] 1, 2 ve 3’ü taşıyan üç <m> öğesi olur ve 1 ile 2’nin bir arada olduğu bilgisi kaybolur. En üst düzeydeki liste de aynı şekilde davranır: [1, [3, 4]] üç <item> öğesi verir. Gruplama önemliyse her iç listeyi önce bir nesneye sarın: [{"values": [1, 2]}, {"values": [3]}], her biri kendi <values> öğelerini taşıyan iki <item> öğesi verir.

XML’den JSON’a ve geri

XML’den JSON’a (/xml-to-json) aracından geçmiş bir belge aynı öğeler, öznitelikler, ad alanı önekleri ve metinle, çevresinde fazladan bir sarmalayıcı olmadan geri gelir. JSON’un hiç tutmadığı şeyler geri gelmez: yorumlar ve DOCTYPE, alt öğeler arasındaki metnin konumu ve farklı adlı öğeler arasındaki sıra; bu öğeler adlarına göre gruplanmış olarak döner. XML’den JSON’a aracında tür tanıma açıksa TRUE gibi bir değer true olarak geri gelir; harfi harfine bir gidiş-dönüş için orada tanımayı kapatın.

Sık sorulan sorular

Dosyam bir sunucuya yükleniyor mu?
Hayır. Dönüştürme tamamen tarayıcınızda, kendi cihazınızın gücüyle yapılır. Dosya bilgisayarınızdan ya da telefonunuzdan çıkmaz; bir araç bir kez kullanıldıktan sonra internetsiz de çalışmaya devam eder.
Listeler nasıl gösterilir?
Yinelenen öğe olarak. {"items": [1, 2]} → <items>1</items><items>2</items>. Belgenin en üstündeki liste <root> içinde <item> öğeleri olur. Boş liste hiç öğe üretmez.
Boşluk ya da rakam içeren anahtarlar?
XML öğe adları rakamla başlayamaz ve boşluk içeremez. Böyle anahtarlar temizlenir: "1. sıra" → _1._sıra, "birim fiyat" → birim_fiyat. Geri kalanı olduğu gibi kalır.
Alt öğe yerine öznitelik alabilir miyim?
Evet: anahtarın önüne @ koyun. {"item": {"@id": 3, "name": "A"}} <item id="3"><name>A</name></item> verir. Bu, XML’den JSON’a aracının yazdığı biçimdir; gidiş-dönüş aynı belgeyi geri verir.

İlgili araçlar

Tablolar ve veriler içinde daha fazlası

Bu sayfa diğer dillerde: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা