XML'den JSON'a Dönüştürücü
XML yapıştırın, anında JSON alın. Nitelikleri @_ anahtarlarına dönüştürür, tekrarlanan öğeleri dizi olarak işler. %100 tarayıcı tabanlı, yükleme yok, kayıt gerekmez.
Seçenekler · 2 boşluk · XML → JSON
XML'den JSON'a Dönüştürme Nedir ve Nasıl Çalışır?
XML (Genişletilebilir İşaretleme Dili) ve JSON (JavaScript Nesne Gösterimi), her ikisi de yapılandırılmış veri formatlarıdır; ancak temelden farklı modellere sahiptirler: XML, niteliklere ve karma içeriğe (alt öğelerle iç içe geçmiş metin) sahip öğe ağacıdır; JSON ise nesneler, diziler, dizeler, sayılar, boolean değerler ve null değerlerden oluşan bir ağaçtır. Aralarında dönüşüm yapmak için uyuşmazlığı kapatacak bir kural seti gerekir.
Bu araç, fast-xml-parser (Node.js), xmltodict (Python) ve JAXB (Java) gibi popüler kütüphanelerin kullandığı en yaygın kuralı kullanır:
**1. Nitelikler → @_ öneki.** XML niteliklerinin doğrudan JSON karşılığı yoktur. Kural, bunları @_ önekli anahtarlar olarak temsil etmektir.
**2. Niteliklere sahip öğe metin içeriği → #text.** Bir öğenin hem nitelikleri hem de metin içeriği varsa —
**3. Tekrarlanan kardeş öğeler → diziler.** XML, aynı adda birden fazla alt öğeye izin verir; JSON nesnelerinde yinelenen anahtarlar olamaz. Çözüm, aynı adlı kardeşleri bir dizide toplamaktır. Tek bir
**4. Tür dönüşümü yok — tüm değerler dize olarak kalır.** XML'in metin içeriği için yerel tür sistemi yoktur. XML'deki "123" değeri bir dizedir. Onu 123 JSON sayısına dönüştürmek, yazarın niyeti hakkında bir varsayım yapmayı gerektirir — bu, posta kodları ("01234" → 1234), telefon numaraları, dolgulu tanımlayıcılar ve hassasiyet açısından kritik ondalık dizeler için yanlış bir varsayımdır. Bu araç tüm değerleri dize olarak korur.
**5. Yorumlar, işleme talimatları ve ad alanları için kayıplı.** XML, JSON'un desteklemediği özelliklere sahiptir: yorumlar (), işleme talimatları () ve ad alanı anlam bilgileri. Bunlar dönüştürme sırasında atılır veya yaklaştırılır. Kayıpsız XML çalışması için — yeniden biçimlendirme, küçültme, doğrulama — bunun yerine XML Biçimlendirici aracını kullanın. Ters dönüştürme için — JSON'dan XML oluşturma — JSON'dan XML'e Dönüştürücü aracını kullanın.
**XML'i neden JSON'a dönüştürürüz?** JSON, JavaScript'in yerel formatı ve REST API'leri için varsayılan değişim formatıdır. Eski bir SOAP servisinden, RSS beslemesinden, site haritasından veya kurumsal sistemden XML alıyorsanız, onu JSON'a dönüştürmek standart JavaScript nesne erişimi, JSON yol sorguları ve JSON destekli herhangi bir veritabanı veya API kullanarak verilerle çalışmanıza olanak tanır.
// Convert XML to JSON in Node.js using fast-xml-parser
import { XMLParser } from 'fast-xml-parser';
const xml = `<catalog>
<product id="P01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog>`;
const parser = new XMLParser({
ignoreAttributes: false, // preserve attributes
attributeNamePrefix: '@_', // @_ prefix for attributes
textNodeName: '#text', // #text for mixed element content
parseAttributeValue: false, // no type coercion on attributes
parseTagValue: false, // no type coercion on element text
});
const result = parser.parse(xml);
console.log(JSON.stringify(result, null, 2));
// {
// "catalog": {
// "product": {
// "@_id": "P01",
// "name": "Wireless Headphones",
// "price": {
// "@_currency": "USD",
// "#text": "79.99"
// }
// }
// }
// } Temel Özellikler
Canlı Dönüştürme
XML yazarken veya yapıştırırken JSON çı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.
@_ Nitelik Öneki Kuralı
XML nitelikleri, fast-xml-parser ve xmltodict kuralına göre @_ önekli JSON anahtarlarına dönüşür.
Tekrarlanan Öğeler için Otomatik Dizi Algılama
Aynı adlı kardeş öğeler otomatik olarak JSON dizisine dönüşür. Tek
Tür Dönüşümü Yok — Değerler Dize Olarak Kalır
Tüm XML değerleri JSON dizesi olarak korunur. Baştaki sıfırlar, telefon numaraları, dolgulu kodlar ve "true" veya "false" gibi boolean benzeri dizeler hiçbir zaman sessizce sayıya veya boolean'a dönüştürülmez.
%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 XML'iniz hiçbir sunucuya gönderilmez, kayıt altına alınmaz ve saklanmaz.
İyi Biçimlilik Hata Raporlama
XML'iniz iyi biçimli değilse araç, hemen sorunu bulup düzeltebilmeniz için ilk hatanın tam satır ve sütun numarasını raporlar.
Örnekler
Yapılandırma Dosyası
<?xml version="1.0" encoding="UTF-8"?>
<appConfig version="2.1" env="production">
<database>
<host>db.example.com</host>
<port>5432</port>
<name>myapp_prod</name>
<pool max="10" min="2"/>
</database>
<cache enabled="true">
<ttl>3600</ttl>
<driver>redis</driver>
</cache>
</appConfig> Nitelikleri ve iç içe öğeleri olan küçük bir uygulama yapılandırması. Nitelikler JSON çıktısında @_ önekli anahtarlara dönüşür: version="2.1", appConfig altında "@_version": "2.1" olur; pool öğesinin max ve min nitelikleri ise "@_max": "10" ve "@_min": "2" olur. Port ve ttl dahil tüm değerler sayı değil dize olarak kalır; dönüştürücü tür dönüşümü yapmaz.
Site Haritası Parçacığı
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://go-tools.org/tools/xml-to-json</loc>
<lastmod>2026-05-29</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://go-tools.org/tools/json-to-xml</loc>
<lastmod>2026-05-29</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset> İki URL içeren bir sitemap.xml parçacığı.
RSS Öğesi
<item> <title>XML to JSON: A Practical Guide</title> <link>https://go-tools.org/blog/xml-to-json-guide</link> <pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate> <category>Developer Tools</category> <description>Learn how XML attributes map to @_ keys, how repeated elements become arrays, and why values stay strings in any XML-to-JSON conversion.</description> <guid isPermaLink="true">https://go-tools.org/blog/xml-to-json-guide</guid> </item>
Bir RSS 2.0 öğesi. guid öğesinin isPermaLink niteliği var; bu nedenle JSON çıktısında guid, "@_isPermaLink": "true" ve "#text": "https://go-tools.org/blog/xml-to-json-guide" olan kardeş anahtarlara sahip bir nesne olur. Diğer tüm öğelerin yalnızca metin içeriği vardır ve doğrudan dize değerlerine dönüştürülür.
Nasıl Kullanılır
- 1
XML'inizi Yapıştırın
XML'inizi yukarıdaki giriş alanına girin veya yapıştırın. Bir örnek denemek için 'Örnek yükle' düğmesine de tıklayabilirsiniz — yapılandırma dosyası, site haritası parçacığı veya RSS öğesi.
- 2
Canlı JSON Çıktısını Görün
JSON çıktı panelinde anında görünür. Nitelikler @_ önekli anahtarlara, karma öğelerin metin içeriği #text'e ve tekrarlanan kardeş öğeler dizilere dönüşür. Gerekirse girinti (2 veya 4 boşluk) ayarlayın.
- 3
Kopyalayın veya İndirin
JSON'u panoya almak için Kopyala'ya veya uygulamanız, API'niz ya da veri hattınız için hazır .json dosyası olarak kaydetmek için İndir'e tıklayın.
Yaygın Dönüştürme Tuzakları
Değerlerin Dize Olarak Kaldığını Unutmak
Dönüştürücü tür dönüşümü yapmaz. Sonraki kodunuz JSON sayıları bekliyorsa ancak XML sayısal dizeler içeriyorsa, dönüştürdükten sonra bunları açıkça dönüştürmeniz gerekir. Örtük dize-sayı dönüşümüne (JavaScript'in == veya aritmetik operatörlerine) güvenmek hataya açıktır — her zaman parseInt(), parseFloat() veya Number() kullanın.
// XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" } ← string, not number
// Dangerous: comparing as-is
if (config.timeout > 25) { ... } // "30" > 25 coerces, but fragile // XML: <timeout>30</timeout>
// JSON output: { "timeout": "30" }
// Safe: explicit coercion where you know the type
if (parseInt(config.timeout, 10) > 25) { ... } Tek Öğe ile Dizi Şekli Uyuşmazlığı
Yalnızca bir
// XML with one item: <root><item>a</item></root>
// JSON: { "root": { "item": "a" } } ← string, not array
result.root.item.forEach(i => console.log(i)); // TypeError: not a function // Normalize to array regardless of count const items = [].concat(result.root?.item ?? []); items.forEach(i => console.log(i)); // safe for 0, 1, or many
Karma İçerik: Metin ve #text Anahtarı
Bir öğenin hem nitelikleri hem de metin içeriği varsa metin #text altında yer alır. Metin değerine düz dize gibi erişmek yerine nesne döner. Nitelikler mümkünse bir öğe değerinin dize mi yoksa #text anahtarlı nesne mi olduğunu her zaman kontrol edin.
// XML: <price currency="USD">29.99</price>
// JSON: { "price": { "@_currency": "USD", "#text": "29.99" } }
const amount = result.price; // { "@_currency": "USD", "#text": "29.99" }, not "29.99" // Handle both plain string and @_/#text object const raw = result.price; const amount = typeof raw === 'object' ? raw['#text'] : raw; // "29.99"
İyi Biçimli Olmayan XML Girişi
Dönüştürücü iyi biçimli XML gerektirir. İyi biçimlilik hatalarının yaygın nedenleri: metin içeriğinde kaçış karakteri eklenmemiş & (& kullanın), eşleşmeyen etiketler (
<!-- Unescaped & — well-formedness error --> <query>name = 'Alice' & role = 'admin'</query>
<!-- Escaped & — valid XML --> <query>name = 'Alice' & role = 'admin'</query>
Tür Dönüşümüyle Bozulan Baştaki Sıfır Değerleri
Bu araç tür dönüşümü yapmadığından baştaki sıfırları korur. JSON'u tür dönüşümü yapan bir kütüphaneyle (bazı JSON şema doğrulayıcıları, ORM eşleştiricileri) işliyorsanız baştaki sıfır kaybolabilir. Şemanızda alanı her zaman açıkça dize olarak bildirin.
// XML: <zipCode>01234</zipCode>
// This tool outputs: { "zipCode": "01234" } ← correct
// But if a downstream schema coerces:
// { zipCode: z.number() } → 1234 ← leading zero lost // Declare ZIP codes and other padded identifiers as strings
// { zipCode: z.string() } → "01234" ← correct Yaygın Kullanım Senaryoları
- SOAP / Eski XML API'lerini Tüketme
- Eski kurumsal servisler (bankacılık, sigortacılık, lojistik) çoğunlukla XML döndüren SOAP API'leri sunar. Modern JavaScript araçlarıyla verilerle çalışmak, belge veritabanında saklamak veya REST API tüketicisine iletmek için yanıtı JSON'a dönüştürün.
- RSS ve Atom Beslemelerini İşleme
- RSS 2.0 ve Atom 1.0 beslemeleri XML'dir. Besleme toplayıcıları, içerik hatları ve bildirim sistemleri için XML ayrıştırma kütüphanesi bağımlılığı olmadan başlıkları, bağlantıları, yayın tarihlerini ve açıklamaları çıkarmak üzere besleme XML'ini JSON'a dönüştürün.
- Site Haritası Dosyalarını Ayrıştırma
- sitemap.xml dosyaları, bir sitenin URL'lerini meta verilerle birlikte listeler. URL kapsamını analiz etmek, tarama kuyruğu oluşturmak, ortamlar arasında site haritalarını karşılaştırmak veya URL'leri bağlantı denetleyicisine ya da SEO denetim aracına aktarmak için site haritasını JSON'a dönüştürün.
- Yapılandırma Dosyalarını Dönüştürme
- Pek çok kurumsal sistem (Spring, Maven, Ant, JBoss, Tomcat) XML yapılandırma dosyaları kullanır. Analiz, geçiş komut dosyası oluşturma, belgeleme veya yerel olarak JSON konuşan araçlara aktarma için bunları JSON'a dönüştürün.
- Mobil ve Android Geliştirme
- Android kaynakları, düzen dosyaları ve AndroidManifest.xml'nin tümü XML'dir. Analiz betikleri, otomatik denetim veya bildirilen izinler, aktiviteler ve kaynak değerleri hakkında belge oluşturma için bunları JSON'a dönüştürün.
- Veri Geçişi ve ETL
- Kurumsal sistemlerden (ERP, CRM, bordro) gelen veri dışa aktarmaları çoğunlukla XML olarak gelir. Veriyi MongoDB, Firestore veya REST API gibi JSON tabanlı bir veri deposuna yüklemek için ETL hattının ilk adımı olarak JSON'a dönüştürün.
Teknik Ayrıntılar
- XML Ayrıştırma için Tarayıcı DOMParser
- XML girişi, tarayıcının yerel DOMParser'ı ile 'text/xml' MIME türü kullanılarak ayrıştırılır — SVG ve XHTML oluşturmak için kullanılan motorla aynı. Tam XML 1.0 uyumludur ve iyi biçimlilik hatalarını satır ve sütun bilgileriyle raporlar. Bu yaklaşım, üçüncü taraf bağımlılığı olmadan ad alanlarını, CDATA bölümlerini, işleme talimatlarını ve varlık referanslarını doğru şekilde işler.
- Özyinelemeli DOM'dan JSON'a Serileştirme
- Ayrıştırmanın ardından araç DOM ağacında özyinelemeli olarak yürür. Öğe düğümleri JSON nesnesi olur; nitelikleri @_ önekli anahtara; yalnızca metinli öğeler düz dize değerine; hem nitelikleri hem de metin içeriği olan öğeler ise metin içeriği için #text anahtarı kazanır. Aynı adlı kardeş öğeler toplanarak JSON dizisi olarak çıkarılır. Öğeler arasındaki yalnızca boşluk içeren metin düğümleri atılır.
- Tür Dönüşümü Yok — Dize Koruması
- Tüm nitelik değerleri ve metin içeriği JSON çıktısına dize olarak yazılır. Hiçbir parseInt, parseFloat veya boolean ayrıştırma uygulanmaz. Bu, baştaki sıfır değerleri, hassasiyet açısından kritik ondalıklar ve boolean benzeri dizeler için sessiz veri bozulmasını önleyen bilinçli bir tasarım tercihidir.
- %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 DOM dolaşımı 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
- Önce XML İyi Biçimliliğini Doğrulayın
- XML kaynağınız elle yazılmış veya zaman zaman hatalı biçimli çıktı üreten bir sistemden geliyorsa, dönüştürmeden önce doğrulayın. XML'in iyi biçimli olduğunu onaylamak ve sorunlar için kesin hata konumları almak üzere XML Biçimlendirici'nin Doğrula düğmesini kullanın.
- Bir veya Çok Sayıda Alanı Diziye Normalleyin
- XML şemanız aynı adda bir ya da çok sayıda alt öğeye izin verdiğinde, JSON çıktısı tek öğe için nesne, çok sayıda öğe için dizi olur. Tüketici kodunuzda bu alanları her zaman normalleyin: const items = [].concat(result.items ?? []) — sıfır, bir veya çok sayıda için güvenlidir ve TypeError'ları önler.
- Tür Dönüşümünü Açıkça ve Seçici Olarak Uygulayın
- Bu araç tüm değerleri dize olarak koruduğundan, ihtiyacınız olan belirli alanlar için bilinçli şekilde tür dönüşümü uygulayın. Bilinen bir tam sayı alanı için parseInt(val, 10) kullanmak güvenlidir. Number(val) ile geniş kapsamlı tür dönüşümü uygulamak, baştaki sıfır değerlerini, boş dizeleri ve hassasiyet açısından kritik ondalıkları bozma riskini taşır.
- Öğe Değerlerine Erişirken #text Olup Olmadığını Kontrol Edin
- Bir öğe bazı yüklerde niteliklere sahip olabilir, bazılarında olmayabilirse JSON değeri ya düz dize (nitelik yok) ya da @_ anahtarları ve #text anahtarı olan nesne (niteliklerle) olur. Sağlam erişimciler yazın: const val = typeof node === 'object' ? node['#text'] : node. Bu kalıp her iki şekli de işler ve sessiz undefined değerlerini önler.
- Kayıpsız XML Çalışması için XML Biçimlendirici Kullanın
- XML'den JSON'a dönüştürme, yorumları, işleme talimatlarını ve ad alanı anlam bilgilerini atar. Tüm XML içeriğini tam olarak korumak istiyorsanız, kayıp olmadan güzelleştirmek, küçültmek ve doğrulamak için XML Biçimlendirici'yi kullanın. JSON'a yalnızca verileri JSON yerel bir bağlamda işlemeniz gerektiğinde dönüştürün.
Sıkça Sorulan Sorular
Bu aracı kullandığımda XML verilerim sunucuya gönderiliyor mu?
XML nitelikleri JSON çıktısında nasıl eşlenir?
Dönüştürücü sayıları veya boolean değerleri tür dönüşümüne uğratıyor mu?
Tekrarlanan (aynı adlı kardeş) öğeler nasıl işlenir?
XML'den JSON'a dönüştürme kayıpsız mı?
JSON'u tekrar XML'e nasıl dönüştürürüm?
XML ad alanlarına ne olur?
0123 neden 123 değil "0123" oluyor?
Bu araç ile XML biçimlendirici arasındaki fark nedir?
Dosya boyutu sınırı var mı?
Dönüştürücü CDATA bölümlerini işliyor mu?
Birden fazla kök öğeli XML'i dönüştürebilir miyim?
İ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.