# JSON vs XML

Adres: https://softwaredictionary.org/tr/karsilastirma/json-vs-xml
Son güncelleme: 2026-10-05

Kısaca: İkisi de yapılandırılmış veriyi metin olarak yazar: JSON daha hafiftir ve nesne ve dizilere karşılık gelir; XML ise nitelikler, namespace'ler ve şemalar ekler.

## JSON ile XML arasındaki fark nedir?

JSON veriyi süslü parantezler içinde nesneler, köşeli parantezler içinde diziler ve metin, sayı, boolean ve null değerler olarak yazar. XML ise onu açılış ve kapanış etiketleri olan adlandırılmış elemanlardan oluşan bir ağaç olarak yazar; bu elemanlar `<price currency="EUR">9.90</price>` örneğindeki gibi nitelikler de taşıyabilir. İkisi de insanların okuyabildiği ve her büyük dilin ayrıştırabildiği düz metindir.

JSON web API'lerinde kazandı, çünkü kısadır ve programların zaten kullandığı veri yapılarına uyar: tek bir çağrı onu bir JavaScript nesnesine ya da bir Python sözlüğüne çevirir. XML daha uzundur, ama yalnızca veri için değil belgeler için de yapıldı: metni işaretlemeyle karıştırır, elemanlarını sırayla tutar, söz dağarcıklarını namespace'lerle ayırır, XSD ile bir şemaya göre doğrulanabilir ve XSLT ile dönüştürülebilir.

Bu yüzden XML başladığı her yerde hâlâ var: SOAP web servisleri, .docx ve .xlsx gibi ofis dosyaları, SVG resimleri, RSS akışları, Android yerleşimleri ve pek çok bankacılık ve kamu standardı. JSON ise REST API'lerine, yapılandırma dosyalarına, NoSQL veritabanlarına ve loglara hâkimdir. JSON'un da bir şema dili vardır, JSON Schema; ama bir şemaya göre doğrulama XML'deki kadar yerleşik bir alışkanlık değildir.

İkisi de doğası gereği daha hızlı ya da daha güvenli değildir, ama her birinin bir tuzağı vardır. Harici entity'leri çözümleyen XML ayrıştırıcıları sunucudaki dosyaları okumak için kötüye kullanılabilir; XXE denen bu saldırı yüzünden bu özellik kapatılmalıdır. JSON'da yorum ve tarih tipi yoktur; bu yüzden tarihler metin olarak, genellikle ISO 8601 biçiminde taşınır.

| Özellik | JSON | XML |
| --- | --- | --- |
| Sözdizimi | Süslü parantezler, köşeli parantezler ve anahtar-değer çiftleri | Açılış ve kapanış etiketleri olan iç içe elemanlar |
| Boyut | Kompakt | Daha uzun: her eleman iki kez adlandırılır |
| Veri tipleri | Metin, sayı, boolean, null, nesne, dizi | Bir şema aksini söylemedikçe hepsi metin |
| Nitelikler ve namespace'ler | Yok | İkisi de var; üst veri ve söz dağarcıklarını karıştırmak için |
| Yorumlar | İzin verilmez | İzin verilir: `<!-- … -->` |
| Şemalar | JSON Schema, isteğe bağlı | XSD ve DTD, yaygın olarak kullanılır |
| Tipik kullanımlar | REST API'leri, yapılandırma, loglar | SOAP, belgeler, SVG, RSS, sektör standartları |

## JSON şu durumlarda doğru seçim

- Bir web API'si yapıyor ya da çağırıyorsunuz.
- Veri nesnelere, dizilere ve basit değerlere karşılık geliyor.
- Tarayıcılarda ve mobil uygulamalarda boyut ve ayrıştırma hızı önemli.

## XML şu durumlarda doğru seçim

- SOAP ya da pek çok bankacılık biçimi gibi XML gerektiren bir sistemle ya da standartla veri alışverişi yapıyorsunuz.
- İçerik, metinle işaretlemenin karıştığı bir belge.
- Namespace'lere ya da bir şemaya göre katı doğrulamaya ihtiyacınız var.

## Sık sorulan sorular

**JSON, XML'in yerini aldı mı?**

Yeni web API'lerinde büyük ölçüde evet. Ama XML pek çok standardın, belge türünün ve eski sistemin biçimi olmaya devam ediyor ve ortadan kalkmayacak.

**JSON ile XML arasında dönüştürme yapılabilir mi?**

Genellikle, dikkatle. XML niteliklerinin, karışık metnin ve tekrarlanan elemanların JSON'da tek bir karşılığı yoktur; bu yüzden dönüştürücüler seçim yapar ve gidip gelen bir dönüşüm başladığınız şeyi birebir geri vermeyebilir.

**JSON yalnızca JavaScript mi?**

JavaScript'in nesne sözdizimine dayanır ve 2019'dan beri her JSON metni aynı zamanda geçerli JavaScript'tir. Ama JSON daha katıdır: anahtarlar çift tırnak ister, yorum, sondaki virgül ve fonksiyon yoktur.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
