JSON'dan XML'e Dönüştürücü
JSON yapıştırın, anında XML alın. Nesneleri, dizileri ve @_ niteliklerini tarayıcıda dönüştürür — hiçbir şey yüklenmez. Ücretsiz, gizli, kayıt gerekmez.
Seçenekler · 2 boşluk · JSON → XML
JSON'dan XML'e Dönüştürme Nedir ve Nasıl Çalışır?
JSON (JavaScript Nesne Gösterimi) ve XML (Genişletilebilir İşaretleme Dili), her ikisi de yapılandırılmış veri formatlarıdır; ancak temelden farklı modellere sahiptirler: JSON, nitelik ya da belge kökü kısıtlaması kavramı olmaksızın nesneler, diziler, dizeler, sayılar, boolean değerler ve null değerlerden oluşan bir ağaçtır; XML ise niteliklere ve metin içeriğine sahip olabilen öğeler ağacıdır ve belgenin tam olarak bir kök öğesi olmalıdır. JSON'dan XML'e dönüşüm, bu uyuşmazlığı kapatmak için bir kural seti gerektirir.
Bu araç, fast-xml-parser (Node.js), xmltodict (Python) ve JAXB (Java) tarafından kullanılan en yaygın kuralı — tersine uygulanmış haliyle — kullanır:
**1. Kök öğe normalleştirme.** JSON ile XML arasındaki en önemli fark kök kısıtlamasıdır. JSON'un kök kavramı yoktur; XML tam olarak bir tane gerektirir. Dönüştürücü dört durumu otomatik olarak işler. Tek anahtarlı nesne, o anahtarı XML kökü olarak kullanır: { "config": {...} } →
**2. @_ öneki → XML nitelikleri.** @_ önekli JSON anahtarları, çevreleyen öğede XML niteliği olur. { "element": { "@_id": "42", "@_class": "primary" } },
**3. #text → öğe metin içeriği.** Bir öğenin hem niteliklere hem de metin içeriğine ihtiyacı olduğunda metin, #text anahtarı altında saklanır: { "price": { "@_currency": "USD", "#text": "29.99" } } →
**4. Diziler → tekrarlanan aynı adlı kardeş öğeler.** XML, aynı adda birden fazla alt öğeye izin verir; JSON, sıralı listeler için diziler kullanır. Bir anahtar altındaki JSON dizisi, her öğe için anahtar adını yeniden kullanan tekrarlanan alt öğeler üretir: { "items": ["a", "b"] },
**5. XML'den JSON'a ile simetrik.** Burada kullanılan @_ ve #text kuralları, yardımcı XML'den JSON'a Dönüştürücü tarafından kullanılan kuralların tamamen aynısıdır. Bu, JSON → XML → JSON gidiş-dönüşünün nitelikleri, metin içeriğini ve öğe yapısını koruduğu anlamına gelir.
**JSON'u ne zaman XML'e dönüştürürüz?** En yaygın senaryolar: (1) XML istek gövdesi gerektiren eski SOAP veya XML tabanlı web servisine veri gönderme; (2) JSON verilerinden XML yapılandırma dosyaları (Spring, Maven, Ant, Android kaynakları) oluşturma veya dönüştürme; (3) JSON içerik verilerinden sitemap.xml veya RSS besleme XML üretme; (4) XML tüketen kurumsal sistemlerle (ERP, CRM, EDI) birlikte çalışma; (5) JSON verilerinden programatik olarak SVG veya diğer XML tabanlı grafik formatları oluşturma. Elde edilen XML'i biçimlendirmek ve doğrulamak için XML Biçimlendirici'yi kullanın.
// Convert JSON to XML in Node.js using fast-xml-parser
import { XMLBuilder } from 'fast-xml-parser';
const data = {
catalog: {
product: {
'@_id': 'P01',
'@_category': 'electronics',
name: 'Wireless Headphones',
price: {
'@_currency': 'USD',
'#text': '79.99'
}
}
}
};
const builder = new XMLBuilder({
attributeNamePrefix: '@_', // @_ keys become XML attributes
textNodeName: '#text', // #text key becomes element text content
ignoreAttributes: false, // process @_ attribute keys
format: true, // pretty-print with indentation
indentBy: ' ', // 2-space indent
});
const xml = builder.build(data);
console.log(xml);
// <catalog>
// <product id="P01" category="electronics">
// <name>Wireless Headphones</name>
// <price currency="USD">79.99</price>
// </product>
// </catalog> Temel Özellikler
Canlı Dönüştürme
JSON yazarken veya yapıştırırken XML çıktısı anında güncellenir — Dönüştür düğmesine gerek yok. Büyük girişler (>200KB) tarayıcının yanıt vermeye devam etmesi için otomatik olarak manuel moda geçer.
Otomatik Kök Normalleştirme
XML tam olarak bir kök öğe gerektirir. Tek anahtarlı nesneler anahtarlarını kök olarak kullanır; çok anahtarlı nesneler
@_ Nitelik ve #text Kuralı
@_ önekli anahtarlar XML niteliği, #text anahtarı öğe metin içeriği olur. Bu, fast-xml-parser ve xmltodict kuralıyla eşleşerek çıktıyı yardımcı XML'den JSON'a Dönüştürücü ile simetrik kılar.
Dizi'den Tekrarlanan Öğelere
Bir anahtar altındaki JSON dizileri, anahtar adını yeniden kullanan tekrarlanan alt öğeler üretir — tekilleştirme yapılmaz. { "items": [1, 2, 3] }, üç
%100 Tarayıcı Tabanlı Gizlilik
Tüm dönüştürme, JavaScript kullanılarak tarayıcınızda yerel olarak çalışır. Kimlik bilgileri, dahili yapılandırmalar ve hassas yükler içeren JSON'unuz hiçbir sunucuya gönderilmez, kayıt altına alınmaz ve saklanmaz.
XML'den JSON'a ile Simetrik Gidiş-Dönüş
@_ ve #text kuralları yardımcı XML'den JSON'a Dönüştürücü ile paylaşılır. JSON → XML → JSON gidiş-dönüşü nitelikleri, metin içeriğini ve iç içe yapıyı başarıyla korur.
Örnekler
API Yanıt Nesnesi
{"user":{"id":42,"name":"Alice Kim","email":"alice@example.com","role":"admin","address":{"city":"Seoul","country":"KR"}}} Üst düzey anahtarın XML kök öğesi olduğu tek anahtarlı JSON nesnesi. İç içe address nesnesi,
Üst Düzey Dizi
[{"id":1,"name":"Widget A","price":9.99},{"id":2,"name":"Widget B","price":14.99},{"id":3,"name":"Widget C","price":4.49}] Girişin tamamı JSON dizisi olduğunda (bir nesneye sarılı olmadan) dönüştürücü
Nitelikler ve Metin İçerikli Nesne
{"catalog":{"product":{"@_id":"P01","@_category":"electronics","name":"Wireless Headphones","price":{"@_currency":"USD","#text":"79.99"}}}} @_ önekli anahtarlar, öğe üzerinde XML niteliği olur: @_id,
Nasıl Kullanılır
- 1
JSON'unuzu Yapıştırın
JSON verilerinizi yukarıdaki giriş alanına girin veya yapıştırın. Bir örnek denemek için 'Örnek yükle' düğmesine de tıklayabilirsiniz — API yanıt nesnesi, dizi yükü veya @_ niteliklerini ve #text kullanan nesne.
- 2
Canlı XML Çıktısını Görün
XML çıktı panelinde anında görünür. Tek anahtarlı nesneler anahtarlarını kök olarak kullanır; çok anahtarlı nesneler
içine sarılır; @_ önekli anahtarlar nitelik olur; diziler tekrarlanan alt öğeler üretir. Gerekirse girinti (2 veya 4 boşluk) ayarlayın. - 3
Kopyalayın veya İndirin
XML'i panoya almak için Kopyala'ya veya .xml dosyası olarak kaydetmek için İndir'e tıklayın. Sonucu doğrulamak veya yeniden biçimlendirmek için XML Biçimlendirici'ye yapıştırın.
Yaygın Dönüştürme Tuzakları
Çok Anahtarlı Nesnenin Beklenmedik Sarıcısı Alması
Üst düzey JSON'unuzun birden fazla anahtarı varsa çıktı hepsini
// Input: { "status": 200, "data": { "id": 1 } }
// Output: <root><status>200</status><data><id>1</id></data></root>
// Root is <root> — may not match your schema // Wrap in a named key to control the root element
// Input: { "response": { "status": 200, "data": { "id": 1 } } }
// Output: <response><status>200</status><data><id>1</id></data></response> Üst Düzey Dizinin - Sarıcısı Alması
Üst düzey JSON dizisinin öğe adı yoktur; bu nedenle
// Input: [{ "id": 1 }, { "id": 2 }]
// Output: <root><item><id>1</id></item><item><id>2</id></item></root>
// Tag names are generic // Wrap in a named key for meaningful tag names
// Input: { "products": [{ "id": 1 }, { "id": 2 }] }
// Output: <root><products><id>1</id></products><products><id>2</id></products></root>
// Each array element reuses the key name "products" as its tag Nitelik Anahtarlarında @_ Öneki Eksik
XML niteliği üretmek için JSON anahtarı @_ önekiyle başlamalıdır. Önek olmadan anahtar, nitelik değil alt öğe olarak değerlendirilir.
// Input: { "tag": { "id": "42", "name": "Alice" } }
// Output: <tag><id>42</id><name>Alice</name></tag> ← id is a child element // Use @_ prefix for attributes
// Input: { "tag": { "@_id": "42", "name": "Alice" } }
// Output: <tag id="42"><name>Alice</name></tag> ← id is an attribute Hem Nitelik Hem de Metin İçerikli Öğede #text Eksik
Bir öğenin hem XML niteliklerine hem de metin içeriğine sahip olmasını istiyorsanız metin için #text anahtarını kullanmalısınız. Onsuz metnin gidecek yeri yoktur ve öğe boş olur veya hata üretir.
// Input: { "price": { "@_currency": "USD", "value": "29.99" } }
// Output: <price currency="USD"><value>29.99</value></price>
// Text is a child element, not text content // Use #text for element text content
// Input: { "price": { "@_currency": "USD", "#text": "29.99" } }
// Output: <price currency="USD">29.99</price> ← text content XML Geçersiz Karakterler İçeren JSON Anahtarları
XML öğe adları rakamla başlayamaz; boşluk, iki nokta üst üste (ad alanı önekleri hariç) veya çoğu özel karakter içeremez. JSON anahtarlarınız bu karakterleri içeriyorsa XML çıktısı hatalı biçimli olur. Dönüştürmeden önce sorunlu anahtarları yeniden adlandırın.
// JSON key starts with digit — invalid XML element name
// Input: { "1stItem": "value" }
// Output: <1stItem>value</1stItem> ← invalid XML // Use a valid XML element name
// Input: { "firstItem": "value" }
// Output: <firstItem>value</firstItem> ← valid XML Değerlerdeki Özel Karakterlerin Kaçış Karakteriyle Belirtilmemiş Olması
XML metin içeriği ham <, >, &, veya " karakterleri içeremez — bunlar <, >, & ve " olarak kaçış karakteriyle belirtilmelidir. Dönüştürücü bu karakterleri öğe metin içeriği ve nitelik değerlerinde otomatik olarak kaçış karakteriyle belirtir. Sonraki işleme onları çift kaçış yapıyorsa, XML ayrıştırıcınızın zaten kaçış karakterli içeriği yeniden kaçışlamak yerine ham XML baytlarını tükettiğini doğrulayın.
// JSON: { "query": "name = 'Alice' & role = 'admin'" }
// Converter outputs: <query>name = 'Alice' & role = 'admin'</query>
// If double-processed: &amp; — consumer is re-escaping // Converter output is correct — consume it as XML, not as a raw string // <query>name = 'Alice' & role = 'admin'</query> // XML parser decodes to: name = 'Alice' & role = 'admin'
Yaygın Kullanım Senaryoları
- SOAP ve Eski XML Web Servislerini Çağırma
- JSON yükünü uygulamanızda oluşturun, XML'e dönüştürün ve SOAP uç noktasına POST isteği gönderin. Bu, elle XML dizisi oluşturmayı önler ve eski servis için serileştirmeniz gereken ana kadar verilerle yerel JSON yapısıyla çalışmanızı sağlar.
- XML Yapılandırma Dosyaları Oluşturma
- Spring, Maven, Ant, Tomcat ve Android, XML yapılandırma formatları kullanır. Yapılandırma verilerini JSON olarak oluşturun veya dönüştürün — diff almak ve sürüm kontrolü için daha kolay — ardından dağıtım için XML'e dönüştürün.
- Site Haritası ve RSS Besleme XML Üretme
- İçerik yönetim sistemleri ve statik site oluşturucuları çoğunlukla sayfa meta verilerini JSON olarak saklar. Arama motorlarına göndermek veya içeriği besleme okuyucularına sendike etmek için bu meta verileri sitemap.xml veya RSS besleme XML'ine dönüştürün.
- Kurumsal Veri Entegrasyonu (EDI / ERP / CRM)
- ERP sistemleri (SAP, Oracle), CRM platformları ve EDI ağları yaygın olarak XML biçiminde veri alışverişi yapar. Özel XML serileştirici oluşturmadan bu sistemleri beslemek için modern REST API'lerden gelen JSON dışa aktarmalarını XML'e dönüştürün.
- Android Kaynak Dosyaları
- Android dize kaynakları, düzen kısıtlamaları ve manifest girdileri XML'dir. JSON veri kaynaklarından programatik olarak kaynak dosyaları oluşturun veya güncelleyin ve Android derleme sistemi için gereken XML formatına dönüştürün.
- SVG ve Vektör Grafik Oluşturma
- SVG, XML'dir. SVG yapısını JSON verisi olarak oluşturun — yollar, şekiller, renkler, dönüşümler — ardından web, baskı veya vektör düzenleme araçları için geçerli SVG dosyaları üretmek üzere XML'e dönüştürün.
Teknik Ayrıntılar
- RFC 8259 Uyumlu JSON Ayrıştırma
- JSON girişi, tam RFC 8259 uyumlu tarayıcının yerel JSON.parse() işlevi kullanılarak ayrıştırılır. En iyi çaba konumuyla (satır ve sütun) doğru sözdizimi hata mesajları sağlar ve tüm JSON veri türlerini işler: dizeler, sayılar, boolean değerler, null, diziler ve nesneler.
- Özel Özyinelemeli JSON'dan XML'e Serileştirici
- Ayrıştırmanın ardından özel özyinelemeli serileştirici JSON ağacında yürür. @_ ile başlayan nesne anahtarları, üst öğede XML niteliği olarak yayılır. #text anahtarı, öğenin metin içeriği olarak yayılır. Düz nesne anahtarları alt öğe olur. Dizi değerleri tekrarlanan aynı adlı kardeş öğeler üretir. Metin içeriği ve nitelik değerlerindeki özel karakterler (<, >, &, ", ') kendi XML varlık referanslarına kaçış karakteriyle belirtilir.
- Kök Normalleştirme
- XML tam olarak bir kök öğe gerektirdiğinden serileştirici, belgeyi oluşturmadan önce kök normalleştirme uygular: tek anahtarlı nesneler anahtarı kök olarak kullanır; çok anahtarlı nesneler ve üst düzey diziler yapay
sarıcısı alır. Bu, çıktının giriş şeklinden bağımsız olarak her zaman iyi biçimli XML olmasını sağlar. - %100 Tarayıcı Tabanlı — Yükleme Yok, Sunucu Yok
- Tüm işlem tarayıcınızın JavaScript motorunda gerçekleşir. Hiçbir veri hiçbir noktada ağ üzerinden iletilmez. 200KB'ı aşan girişler, yoğun serileştirme sırasında tarayıcının yanıt vermeye devam etmesini sağlamak için otomatik olarak canlı moddan manuel moda (açık bir Dönüştür tıklaması gerektirir) geçer.
En İyi Uygulamalar
- Tek Anahtarlı Nesneyle Kök Öğeyi Denetleyin
- Anlamlı XML üretmenin en temiz yolu, üst düzey JSON'unuzun tek anahtarlı bir nesne olmasını ve bu anahtarın istenen kök öğe adı olmasını sağlamaktır. Çok anahtarlı veriyi tek adlandırılmış anahtarın altında sararak genel
sarıcısı yerine anlam bakımından anlamlı bir kök elde edersiniz. - Nitelik Yoğun XML için @_ ve #text Kullanın
- Hedef XML şemanız çok sayıda nitelik kullanıyorsa (yapılandırma dosyalarında, SVG'de ve SOAP zarflarında yaygındır), dönüştürmeden önce JSON'unuzu @_ önekli anahtarlar ve #text kullanacak şekilde yeniden şekillendirin. Ortaya çıkan XML, sonraki işleme gerek kalmadan hedef şemayla tam olarak eşleşir.
- Anlamlı Etiket Adları için Dizileri Adlandırılmış Nesnelere Sarın
- Üst düzey dizi, her öğe için sabit değişmez ad olarak
- 'ın kullanıldığı genel
kalıbını üretir. Diziyi adlandırılmış bir anahtar altında sararak — { "products": [...] } — kök sarıcısı altında tekrarlanan- ...
öğeleri (anahtar adı her dizi öğesi için yeniden kullanılır) elde edersiniz. Bu, neredeyse her zaman bir şema tarafından ayrıştırılacak veya doğrulanacak XML için tercih edilir. - 'ın kullanıldığı genel
- Çıktıyı XML Biçimlendirici ile Doğrulayın
- Dönüştürdükten sonra, XML çıktısını XML Biçimlendirici'ye yapıştırarak iyi biçimliliği doğrulayın, girintiyi kontrol edin ve herhangi bir yapısal sorunu bir sonraki servise göndermeden veya sürüm kontrolüne kaydetmeden önce tespit edin.
- Dönüştürmeden Önce JSON Anahtarlarını Temizleyin
- XML öğe adları harf veya alt çizgiyle başlamalı; boşluk veya çoğu özel karakter içermemelidir. JSON anahtarlarınız harici bir kaynaktan (veritabanı sütun adı, API alan adı veya kullanıcı girdisi) geliyorsa, hatalı biçimli çıktıdan kaçınmak için dönüştürmeden önce XML adı geçerliliği açısından denetleyin.
Sıkça Sorulan Sorular
Bu aracı kullandığımda JSON verilerim sunucuya gönderiliyor mu?
Araç XML kök öğesini nasıl belirler?
Çok anahtarlı JSON nesnesi neden içine sarılıyor?
Üst düzey JSON dizisi XML'e nasıl dönüştürülür?
JSON anahtarlarını XML niteliklerine nasıl dönüştürürüm?
#text anahtarı ne için kullanılır?
Girinti XML yapısını etkiliyor mu?
Nesne içindeki iç içe JSON dizisi XML'e nasıl dönüştürülür?
XML'i tekrar JSON'a nasıl dönüştürürüm?
XML çıktısını doğrulayabilir veya biçimlendirebilir miyim?
JSON girişi için dosya boyutu sınırı var mı?
Hangi JSON türleri destekleniyor?
İlgili Araçlar
Tüm araçları görüntüleyin →Base64 Çözücü ve Kodlayıcı
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
CSV'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.
JSON Diff Karşılaştır
Kodlama ve Biçimlendirme
Tarayıcınızda iki JSON dosyasını anında karşılaştırın. Yan yana vurgulama, RFC 6902 JSON Patch çıktısı, zaman damgaları ve kimlikler gibi gürültülü alanları yoksayma. %100 gizli, yükleme yok.
JSON Biçimlendirici ve Doğrulayıcı
Kodlama ve Biçimlendirme
JSON'u tarayıcınızda anında biçimlendirin, doğrulayın ve güzelleştirin. Sözdizimi denetimi, hata tespiti, sıkıştırma ve tek tıkla kopyalama. %100 gizli.
JSON Schema Doğrulayıcı
Kodlama ve Biçimlendirme
JSON verilerinizi herhangi bir JSON Schema'ya karşı tarayıcınızda anında doğrulayın. Draft 2020-12, 2019-09 ve Draft-07 desteği, tam yollu hata mesajları. %100 gizli — yükleme yok, hesap yok, ücretsiz.
JSON'dan CSV'ye Dönüştürücü
Kodlama ve Biçimlendirme
JSON'u tarayıcınızda CSV'ye dönüştürün. RFC 4180, Excel-EU, TSV, Pipe ön ayarları. İç içe yapıları düzleştirin. %100 gizli, yükleme yok.