ToolDeck

JSON'dan XML'e

JSON'u XML biçimine dönüştür

Örnek dene

JSON Girdisi

XML Çıktısı

Yerel olarak çalışır · Gizli bilgi yapıştırmak güvenlidir
XML burada görüntülenecektir…

JSON'dan XML'e Dönüşüm Nedir?

JSON (JavaScript Object Notation) ve XML (eXtensible Markup Language), yazılım geliştirmede kullanılan iki baskın veri alışverişi formatıdır. JSON, anahtar-değer çiftleri ve dizileri kompakt bir söz dizimi içinde kullanırken XML, verileri açılış ve kapanış etiketlerinin içine alarak isteğe bağlı özniteliklerle zenginleştirir. JSON'dan XML'e dönüşüm; nesneler, diziler, dizgeler, sayılar, boolean'lar ve null gibi JSON'un yapısal ilkellerini, eleman iç içe geçmesi korunan biçimlendirilmiş bir XML belgesine çevirir.

XML, birçok kurumsal sistem, devlet API'si, SOAP web servisi ve HL7 (sağlık), FpML (finans) ile XBRL (finansal raporlama) gibi endüstri standartlarında hâlâ zorunlu formattır. Uygulamanız JSON üretirken aşağı akıştaki tüketici XML bekliyorsa, bir JSON'dan XML'e dönüştürücü bu çeviriyi elle yeniden yapılandırmaya gerek kalmadan gerçekleştirir. Dönüşüm öngörülebilir eşleme kurallarına göre işler: JSON nesneleri XML elemanlarına, dizi öğeleri tekrarlanan kardeş elemanlara ve ilkel değerler metin düğümlerine dönüşür.

JSON'un XML'e nasıl eşleneceğini tanımlayan tek bir RFC veya W3C standardı yoktur. Farklı kütüphaneler aynı girdi için farklı çıktılar üretebilir. Bu araç tarafından kullanılan en yaygın kural (ve pek çok popüler kütüphane tarafından da benimsenmiş olan); belgenin tamamını yapılandırılabilir bir kök eleman içine almak, her JSON anahtarını bir XML alt elemanına dönüştürmek ve dizi öğelerini aynı etiket adıyla tekrarlanan elemanlar olarak göstermektir. Alıcı sistem belirli bir XML şemasını (XSD) zorunlu kılıyorsa bu eşleme kurallarını anlamak büyük önem taşır.

Neden Çevrimiçi JSON'dan XML'e Dönüştürücü Kullanılır?

JSON kaynağından XML'i elle yazmak hem yorucu hem de hataya açıktır. Eşleşmeyen etiketler, unutulan kapanış elemanları ve yanlış iç içe geçme, şema doğrulamasından geçemeyen belgeler üretir. Dönüştürücü, yapısal çeviriyi otomatik olarak gerçekleştirir.

Tarayıcıda Anında Dönüştürün
JSON'u yapıştırın, milisaniyeler içinde biçimlendirilmiş XML elde edin. Sunucu isteği yok, CLI kurulumu yok, bağımlılık yüklemesi yok. Dönüşüm, tamamen cihazınızdaki JavaScript ile çalışır.
🔒
Hassas Verileriniz Güvende Kalır
JSON girdiniz tarayıcı sekmesini asla terk etmez. Tüm ayrıştırma ve XML oluşturma işlemleri istemci tarafında gerçekleşir; bu da API anahtarları, token'lar veya üretim verileri içeren yükleri dönüştürmek için güvenli bir ortam sağlar.
📋
Hesap veya Giriş Gerekmez
Sayfayı açın, JSON'u yapıştırın ve XML çıktısını kopyalayın. Kayıt formu, e-posta doğrulaması veya kullanım sınırı yok — verilerinize anında erişin.
🌳
İç İçe Yapıları Otomatik İşler
Derin iç içe geçmiş nesneler, karışık diziler ve null değerlerin tamamı doğru şekilde dönüştürülür. Araç, JSON girdinizin tam hiyerarşisini sonuçta oluşan XML ağacında korur.

JSON'dan XML'e Kullanım Senaryoları

SOAP Web Servisi Entegrasyonu
REST API'niz JSON döndürüyor ancak bir iş ortağının SOAP uç noktası XML istek gövdeleri bekliyor. JSON yükünü, bir SOAP zarfına sarmadan önce XML'e dönüştürün.
Kurumsal Veri Alışverişi
Eski ERP ve CRM sistemleri çoğunlukla yalnızca XML içe aktarımını kabul eder. Modern araçlardan elde ettiğiniz JSON dışa aktarmalarını beklenen şemaya uyan XML beslemelerine dönüştürün.
CI/CD Pipeline Yapılandırması
Bazı derleme araçları (Maven, Ant, MSBuild) XML yapılandırma dosyaları kullanır. Otomatik derlemeler sırasında JSON parametre dosyalarından XML yapılandırma parçaları oluşturun.
QA Test Verisi Hazırlığı
JSON veri kümelerinden XML test verisi oluşturun. XML ayrıştırıcılarını, XSLT dönüşümlerini veya XPath sorgularını test etmek için geçerli XML belgeleri hızla üretin.
Veri Pipeline Formatı Köprüleme
XML alan ETL pipeline'ları, JSON üreten API'lerden veri alabilir. Ara JSON sonuçlarını XML tabanlı işleme aşamasına yüklemeden önce XML'e dönüştürün.
XML Yapısını Öğrenme
XML öğrenen öğrenciler, tanıdık JSON yapılarını yapıştırarak eşdeğer XML temsilini görebilir. Bu sayede etiket iç içe geçmesi, eleman hiyerarşisi ve belge yapısı somut bir hal alır.

JSON'dan XML'e Eşleme Kuralları

JSON'dan XML'e dönüşümü yöneten evrensel bir standart olmadığından farklı araçlar farklı çıktılar üretir. Aşağıdaki tablo, bu dönüştürücü ve en popüler kütüphaneler (js2xmlparser, xmlbuilder, fast-xml-parser) tarafından kullanılan eşleme kurallarını göstermektedir. Diziler için tekrarlanan kardeş eleman kuralı baskın hale gelmiştir; çünkü XML şemalarının koleksiyonları doğal olarak modelleme biçimini yansıtır — her öğe, sarmalanmış bir alt eleman yerine birinci sınıf bir eleman olarak yer alır — ve XPath sorguları ile XSLT dönüşümleriyle temiz bir şekilde bütünleşir.

JSON TypeJSON ExampleXML Output
Object{"name": "Alice"}<name>Alice</name>
Nested object{"user": {"age": 30}}<user><age>30</age></user>
Array{"colors": ["red", "blue"]}<colors>red</colors><colors>blue</colors>
String"hello"<root>hello</root>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

Kod Örnekleri

Aşağıda üç farklı ortamda JSON'u XML'e dönüştürmek için çalıştırılabilir kod parçacıkları bulunmaktadır. Her örnek, örnek bir JSON nesnesinden biçimlendirilmiş XML üretir.

JavaScript (Node.js)
import { create } from 'xmlbuilder2';

const json = {
  order: {
    id: 1024,
    items: [
      { sku: "A1", qty: 2 },
      { sku: "B3", qty: 1 }
    ],
    shipped: false
  }
};

const xml = create({ version: '1.0' })
  .ele(json)
  .end({ prettyPrint: true });

console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// →   <id>1024</id>
// →   <items>
// →     <sku>A1</sku>
// →     <qty>2</qty>
// →   </items>
// →   <items>
// →     <sku>B3</sku>
// →     <qty>1</qty>
// →   </items>
// →   <shipped>false</shipped>
// → </order>
Python
import json
import xmltodict

data = {
    "order": {
        "id": 1024,
        "items": [
            {"sku": "A1", "qty": 2},
            {"sku": "B3", "qty": 1}
        ],
        "shipped": False
    }
}

# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# →   <id>1024</id>
# →   <items>
# →     <sku>A1</sku>
# →     <qty>2</qty>
# →   </items>
# →   <items>
# →     <sku>B3</sku>
# →     <qty>1</qty>
# →   </items>
# →   <shipped>false</shipped>
# → </order>
Go
package main

import (
	"encoding/json"
	"encoding/xml"
	"fmt"
)

type Item struct {
	SKU string `json:"sku" xml:"sku"`
	Qty int    `json:"qty" xml:"qty"`
}

type Order struct {
	XMLName xml.Name `xml:"order"`
	ID      int      `json:"id" xml:"id"`
	Items   []Item   `json:"items" xml:"items"`
	Shipped bool     `json:"shipped" xml:"shipped"`
}

func main() {
	raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`

	var order Order
	json.Unmarshal([]byte(raw), &order)

	out, _ := xml.MarshalIndent(order, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <order>
	// →   <id>1024</id>
	// →   <items>
	// →     <sku>A1</sku>
	// →     <qty>2</qty>
	// →   </items>
	// →   ...
}

Sık Sorulan Sorular

JSON'dan XML'e dönüşüm kayıpsız mıdır?
Yapısal olarak evet — her JSON değeri bir XML elemanına veya metin düğümüne eşlenir. Ancak XML, JSON'un yaptığı gibi sayılar, boolean'lar ve dizgeler arasında doğal olarak ayrım yapmaz. JSON'daki 42 değeri XML'de "42" metin içeriğine dönüşür. Alıcı sistem XML Şeması (XSD) tür bildirimlerine dayanıyorsa, ayrıştırma sırasında özgün türleri kurtarabilir. Şema olmadan tür bilgisi, dönüştürülen belgede etkin biçimde kaybolur.
JSON dizileri XML'e nasıl dönüştürülür?
Her dizi öğesi, aynı etiket adıyla bir kardeş XML elemanına dönüşür. Örneğin "colors": ["red", "blue"] JSON dizisi iki eleman üretir: &lt;colors&gt;red&lt;/colors&gt; ve &lt;colors&gt;blue&lt;/colors&gt;. Bazı dönüştürücüler dizileri bir üst elemana sarar (örn. &lt;colorsList&gt;), ancak tekrarlanan kardeş yaklaşımı daha yaygındır ve JAXB, Jackson ile fast-xml-parser tarafından kullanılan kurala uygundur.
Dönüşümde null değerlerine ne olur?
JSON null değeri genellikle boş bir XML elemanına dönüşür — örneğin "middle_name": null ifadesi &lt;middle_name/&gt; olur. Bazı kütüphaneler, hedef sistemin bir XSD şemasına göre doğrulama yapması durumunda açık null'ı belirtmek için xsi:nil="true" özniteliği ekler. Bu dönüştürücü, varsayılan olarak kendini kapatan boş bir eleman çıktısı üretir.
XML'i tekrar JSON'a dönüştürebilir miyim?
Evet, ancak gidiş-dönüş her zaman simetrik değildir. Öznitelikler, işleme talimatları, yorumlar, karışık içerik ve ad alanları gibi XML özellikleri için doğrudan JSON karşılığı yoktur. XML'i JSON'a, ardından tekrar XML'e dönüştürmek yapısal olarak farklı bir belge üretebilir. XML'den JSON'a dönüşüme ihtiyaç duyuyorsanız, öznitelikleri ve ad alanlarını koruyan özel bir XML'den JSON'a dönüştürücü kullanın.
Geçerli XML eleman adı olmayan JSON anahtarlarını nasıl ele alabilirim?
XML eleman adları rakamla başlayamaz, boşluk içeremez veya özel karakter barındıramaz. JSON'unuzda "2024-data" veya "first name" gibi bir anahtar varsa dönüştürücünün bunu temizlemesi gerekir — genellikle alt çizgi eklenerek veya geçersiz karakterler alt çizgiyle değiştirilerek. Dönüştürücünün çıktısını kontrol edin; elde edilen XML'nin XSD doğrulamasından geçmesi gerekiyorsa kaynak JSON'daki anahtar adlarını düzeltin.
Bu araç en fazla ne kadar büyüklükte JSON işleyebilir?
Dönüştürücü tarayıcının JavaScript motorunda çalışır; bu nedenle pratik sınır, kullanılabilir belleğe bağlıdır. Modern tarayıcıların büyük çoğunluğu 50-100 MB'a kadar JSON belgesini sorunsuz işler. Bunun üzerindeki dosyalar için Python'ın xmltodict kütüphanesi veya verileri belleğe tamamen yüklemek yerine artımlı biçimde işleyen bir komut satırı aracı kullanın.
Çıktı XML biçimlendirilmiş mi yoksa geçerli mi?
Çıktı her zaman biçimlendirilmiş XML'dir — etiketler doğru şekilde iç içe geçirilir, özel karakterler kaçış dizisiyle gösterilir ve belgede tek bir kök eleman bulunur. Çıktının geçerli olup olmadığı ise hedef şemaya (XSD veya DTD) bağlıdır. Biçimlendirme bir yapısal garantidir; geçerlilik, eleman adlarının, iç içe geçme sırasının ve içerik türlerinin belirli bir şema tanımıyla eşleşmesini gerektirir.