Skip to content

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.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Seçenekler · 2 boşluk · JSON → XML
Girinti
0 karakter
XML Çıktı
0 satır
Reviewed for XML 1.0 well-formedness, @_/#text convention correctness, and root normalization accuracy — Go Tools Engineering Team · May 29, 2026

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": {...} } → .... Çok anahtarlı nesne içine sarılır: { "a": 1, "b": 2 } → 12. Üst düzey dizi, ... olarak sarılır. İlkel değer, değer olarak sarılır.

**2. @_ öneki → XML nitelikleri.** @_ önekli JSON anahtarları, çevreleyen öğede XML niteliği olur. { "element": { "@_id": "42", "@_class": "primary" } }, üretir. Bu önek kuraldır — geçerli hiçbir XML öğe adı @ile başlamaz; dolayısıyla alt öğe adlarıyla çakışma olmaz.

**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" } } → 29.99. Yalnızca metin içeriği olan öğeler (@_ anahtarı olmadan) bu dolambaçlı yol olmaksızın düz metin öğesine dönüşür.

**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"] }, ab (ebeveynin altında iki kardeş) üretir. JSON girişinin tamamı üst düzey dizi olduğunda bir sarıcısı eklenir ve her öğe alt öğesi olur — , yalnızca o durumda kullanılan sabit geri dönüş adıdır.

**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 içine sarılır; üst düzey diziler ... olur; ilkel değerler değer olur — her zaman geçerli XML çıktısı.

@_ 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] }, üç kardeş verir. Üst düzey dizi girişi, 'ı sabit değişmez ad olarak kullanarak ... şeklinde sarılır.

%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, ve alt öğelerine sahip bir

alt öğesi üretir. Dıştaki nesnenin tam olarak bir anahtarı ("user") olduğundan sarıcı eklenmez — "user" kendisi kök öğedir. 42 gibi sayılar metin içeriği olarak olduğu gibi aktarılır: 42.

Ü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ü ... üretir. Her dizi öğesi bir alt öğesi olur — "item", yalnızca üst düzey diziler için kullanılan sabit değişmez bir sarıcı adıdır. 'ın göründüğü tek durum budur; bir nesne anahtarı altındaki diziler, her öğe için o anahtarın adını yeniden kullanır.

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, öğesinde id="P01" ve @_category, category="electronics" olur. #text anahtarı öğenin metin içeriği olur — price nesnesi 79.99 üretir. Bu, aynı @_ ve #text kurallarını kullanan XML'den JSON'a Dönüştürücü ile temiz bir gidiş-dönüş sağlar.

Nasıl Kullanılır

  1. 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. 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. 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 içine sarar. Bu geçerli XML'dir (tek kök gerektirir); ancak hedef şemanızla eşleşmeyebilir. Kök öğe adını denetlemek için JSON'unuzu tek anahtarlı nesneye yeniden şekillendirin.

✗ Yanlış
// 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
✓ Doğru
// 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 ... olarak sarılır. Anlamlı etiket adları istiyorsanız diziyi önce adlandırılmış bir nesneye sarın.

✗ Yanlış
// Input: [{ "id": 1 }, { "id": 2 }]
// Output: <root><item><id>1</id></item><item><id>2</id></item></root>
// Tag names are generic
✓ Doğru
// 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.

✗ Yanlış
// Input: { "tag": { "id": "42", "name": "Alice" } }
// Output: <tag><id>42</id><name>Alice</name></tag>  ← id is a child element
✓ Doğru
// 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.

✗ Yanlış
// Input: { "price": { "@_currency": "USD", "value": "29.99" } }
// Output: <price currency="USD"><value>29.99</value></price>
// Text is a child element, not text content
✓ Doğru
// 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.

✗ Yanlış
// JSON key starts with digit — invalid XML element name
// Input: { "1stItem": "value" }
// Output: <1stItem>value</1stItem>  ← invalid XML
✓ Doğru
// 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.

✗ Yanlış
// JSON: { "query": "name = 'Alice' & role = 'admin'" }
// Converter outputs: <query>name = 'Alice' &amp; role = 'admin'</query>
// If double-processed: &amp;amp; — consumer is re-escaping
✓ Doğru
// Converter output is correct — consume it as XML, not as a raw string
// <query>name = 'Alice' &amp; 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.
Çı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?
Hayır. Tüm dönüştürme işlemi tamamen tarayıcınızda JavaScript kullanılarak gerçekleşir. JSON'unuz ağ üzerinden iletilmez, hiçbir sunucuda saklanmaz ve kayıt altına alınıp analiz edilmez. Bu, aracı API kimlik bilgileri, veritabanı yapılandırması, dahili servis verileri veya diğer hassas içerikler barındıran JSON yükleriyle güvenle kullanmanızı sağlar. Tarayıcınızın Ağ sekmesini açarak doğrulayabilirsiniz — JSON yapıştırıp dönüştürdüğünüzde sıfır istek tetiklendiğini göreceksiniz.
Araç XML kök öğesini nasıl belirler?
XML tam olarak bir kök öğe gerektirir; JSON'un böyle bir kısıtlaması yoktur. Dönüştürücü şu kuralları uygular: (1) Tek anahtarlı nesne, o anahtarı kök öğe adı olarak kullanır — { "user": { ... } }, ... olur. (2) Çok anahtarlı nesne (üst düzeyde iki veya daha fazla anahtar) tüm anahtarların tek bir kökün alt öğesi olması için öğesine sarılır. (3) Üst düzey dizi, her dizi öğesinin alt öğesi olduğu ... olarak sarılır. (4) Üst düzeydeki ilkel değer (dize, sayı, boolean, null) değer olur. Bu kurallar çıktının her zaman tam olarak bir kökle iyi biçimli XML olmasını garanti eder.
Çok anahtarlı JSON nesnesi neden içine sarılıyor?
XML, katı tek kök gereksinimiyle bir belge formatıdır — geçerli XML belgesinin tam olarak bir üst düzey öğesi olmalıdır. JSON nesnelerinin istediği sayıda üst düzey anahtarı olabilir; bu nedenle JSON'unuzun birden fazla üst düzey anahtarı varsa (örneğin { "status": 200, "data": {...}, "meta": {...} }), kök olarak kullanılacak tek bir anahtar yoktur. içine sarmak en güvenli ve en öngörülebilir kuraldır. Farklı bir kök öğe adı istiyorsanız, dönüştürmeden önce JSON'unuzu tek anahtarlı nesneye yeniden şekillendirin.
Üst düzey JSON dizisi XML'e nasıl dönüştürülür?
Üst düzey dizi, ...... olarak sarılır. Her dizi öğesi bir alt öğesi olur — "item", yalnızca üst düzey diziler için kullanılan sabit değişmez bir addır. Bu, nesne anahtarı altındaki iç içe dizilerden farklıdır: { "products": [...] } yazarsanız, her dizi öğesi değil alt öğesi olur (anahtar adını yeniden kullanır). Üst düzey dizi için özel etiket adları istiyorsanız, önce onu adlandırılmış bir nesneye sarın: { "products": [...] }, tekrarlanan öğeleri verir.
JSON anahtarlarını XML niteliklerine nasıl dönüştürürüm?
Anahtarın önüne @_ ekleyin; dönüştürücü bunu alt öğe yerine XML niteliği olarak yayar. Örneğin { "tag": { "@_id": "42", "@_lang": "en", "#text": "Hello" } }, Hello üretir. @_ öneki kuralı, fast-xml-parser (Node.js) ve xmltodict (Python) tarafından kullanılan kuralın aynısıdır; bu, çıktıyı bu kütüphanelerle tutarlı biçimde gidiş-dönüş yapılabilir kılar. Bu aynı zamanda yardımcı XML'den JSON'a Dönüştürücü tarafından kullanılan kuraldır.
#text anahtarı ne için kullanılır?
Bir öğenin hem XML niteliklerine hem de metin içeriğine ihtiyacı olduğunda, metni bir alt öğeye eşleyemezsiniz — öğenin kendi metin düğümü olması gerekir. JSON'unuzdaki #text anahtarı o metin içeriği olur. Örnek: { "price": { "@_currency": "USD", "#text": "29.99" } }, 29.99 üretir. Bir nesnenin yalnızca #text anahtarı varsa ve @_ anahtarı yoksa yine de düz metin öğesi üretir: { "note": { "#text": "hello" } }, hello olur.
Girinti XML yapısını etkiliyor mu?
Hayır. Girinti yalnızca görseldir — XML'i insan tarafından okunabilir biçimlendirme açısından değiştirir; ancak öğe yapısını, nitelik değerlerini veya metin içeriğini etkilemez. Kompakt çıktı için 2 boşluk, daha okunabilir çıktı için 4 boşluk seçin. Her ikisi de anlam bakımından özdeş XML üretir.
Nesne içindeki iç içe JSON dizisi XML'e nasıl dönüştürülür?
Bir anahtar altındaki JSON dizi değeri, her öğe için anahtar adını yeniden kullanarak tekrarlanan aynı adlı alt öğeler üretir. Örneğin { "items": [1, 2, 3] }, üç kardeş üretir — değil. Benzer şekilde { "products": [{"name":"A"},{"name":"B"}] }, her biri alt öğesi içeren iki öğesi üretir. Anahtar adı her dizi öğesi için olduğu gibi kullanılır; tekilleştirme yapılmaz. değişmez adının göründüğü tek yer, tüm JSON girişinin üst düzey dizi olduğu durumdur; burada sabit bir geri dönüş sarıcı adıdır.
XML'i tekrar JSON'a nasıl dönüştürürüm?
Yardımcı XML'den JSON'a Dönüştürücü aracımızı kullanın. Aynı @_ ve #text kurallarını tersine uygular: XML nitelikleri @_ önekli JSON anahtarlarına, niteliklerle birlikte öğe metin içeriği #text anahtarına ve tekrarlanan aynı adlı kardeş öğeler JSON dizisine dönüşür. İki araç gidiş-dönüş kullanım senaryoları için simetrik.
XML çıktısını doğrulayabilir veya biçimlendirebilir miyim?
Evet — XML çıktısını XML Biçimlendirici'ye yapıştırarak iyi biçimliliği doğrulayın, girintiyi ayarlayın veya küçültün. XML Biçimlendirici, bu dönüştürücü XML ürettikten sonra incelemek ve cilâlamak için doğru araçtır.
JSON girişi için dosya boyutu sınırı var mı?
Sabit bir sınır yoktur; ancak 200KB'ı aşan girişler otomatik olarak canlı dönüştürmeden manuel moda geçer. Manuel modda bir Dönüştür düğmesi görünür ve dönüştürme yalnızca siz tıkladığınızda çalışır — bu, yoğun serileştirme sırasında tarayıcının yanıt vermeye devam etmesini sağlar. Çok büyük JSON dosyaları için daha iyi performans amacıyla komut satırı araçlarını kullanmayı düşünün: node -e "const {XMLBuilder}=require('fast-xml-parser');console.log(new XMLBuilder({attributeNamePrefix:'@_'}).build(JSON.parse(require('fs').readFileSync('in.json','utf8'))))" veya xmltodict ile eşdeğer Python betiği.
Hangi JSON türleri destekleniyor?
Altı JSON türünün tümü desteklenir. Nesneler alt öğeler içeren XML öğelerine dönüşür. Diziler tekrarlanan aynı adlı kardeş öğeler üretir. Dizeler, sayılar, boolean değerler ve null, öğe metin içeriği olur. Boolean ve null, değişmez dize gösterimleri olarak serileştirilir: true, false ve null için boş içerik. Tür dönüşümü uygulanmaz — sayılar JSON'da göründükleri gibi XML metin içeriğine yazılır; ondalıklar ve hassasiyet korunur.