Geliştirici Araçları

JSON ↔ YAML Dönüştürücü

İç içe diziler, metinler ve tam sayısal değerlerle JSON'u YAML'a veya YAML'ı JSON'a yerel olarak dönüştürün.

Girdiğiniz değerler

YAML 1.2 veri dönüşümü. Yorumlar ve biçimlendirme korunmaz. Girdi sınırı: 2 MiB.

Sonuçlarınız

JSON ve YAML'yi amaçlanan veri türleriyle dönüştürün

JSON ile uyumlu verileri katı JSON ile YAML 1.2 çekirdek söz dizimi arasında dönüştürün. Dönüştürücü, büyük tam sayılar dâhil JSON sayı belirteçlerini önce JavaScript sayılarına çevirerek yuvarlamak yerine korur. Kaynak belgenin biçimlendirmesini veya bir uygulamanın yapılandırma şemasını değil, veri değerlerini dönüştürür. YAML yorumları, çapaları ve sunum tercihleri JSON dönüşümünde korunmaz.

Adım adım

  1. Metin yapıştırın veya yerel bir UTF-8 JSON, YAML, YML ya da TXT dosyası açın. JSON → YAML veya YAML → JSON yönünü açıkça seçin; dosya açmak yönü algılamaz.
  2. İki veya dört boşluk seçin ve isterseniz nesne anahtarlarını sıralayın. Girdiyi işleyin, söz dizimi veya desteklenmeyen özellik hatalarını çözün. Sıralama özyinelemelidir ve büyük-küçük harfe duyarlı leksikografik sıra kullanır; dizi sırası değişmez.
  3. Dizgeleri, mantıksal değerleri, null değerlerini ve sayıları inceleyin; ardından converted.yaml veya converted.json dosyasını kopyalayın, yazdırın ya da indirin. Girdiyi veya seçenekleri düzenlerseniz eski çıktı temizlendiği için yeniden işleyin. Dönüştürülen dosyayı kullanacak uygulamada doğrulayın.

Ayarlar ve sınırlar

Türler ve belge kuralları
Benzersiz dizge anahtarları ve JSON ile uyumlu değerleri olan tek bir YAML 1.2 belgesi kullanın. "00123" gibi sayısal görünen kimlikleri tırnak içine alın; tırnaksız YAML 00123 değeri 123 sayısına dönüşür. Yalın yes, on ve ISO tarih metinleri çekirdek kurallarında dizge olarak kalır.
Takma adlar ve desteklenmeyen özellikler
Döngüsüz takma adlar tekrarlanan değerlere genişletilir. Döngüler, yinelenen anahtarlar, dizge olmayan anahtarlar, desteklenmeyen etiketler ve sonlu olmayan sayılar reddedilir. YAML birleştirme anahtarları uygulanmaz: <<: *base sıradan bir "<<" özelliğine dönüşür; bu yüzden devralınmasını istediğiniz alanları önce genişletin.
Boyut ve karmaşıklık
Girdi, 2 MiB UTF-8 metniyle sınırlıdır: 2,097,152 bayt. Çıktı 8 MiB ile sınırlıdır. İşleme ayrıca 128 iç içe geçme düzeyi, 200,000 değer düğümü veya 100 takma ad ziyareti aşıldığında durur; küçük bir dosya da bu sınırları aşabilir.

Uygulamalı örnek

types-example.json dosyasını indirin ve iki boşluk girintiyle, sıralama kapalı olacak şekilde JSON → YAML seçin. Dönüştürüp types-example.yaml ile karşılaştırın. Tırnak içindeki id ve word dizge kalır, enabled false kalır ve retries ile large sayı olarak kalır.

Örnek dosyaları indirin

Örnek girdi

{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}

Beklenen sonuç

"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993

Şimdi types-example.yaml dosyasını açın, açıkça YAML → JSON yönüne geçin ve yeniden işleyin. id hâlâ "00123" olmalı, büyük tam sayı da hâlâ 9007199254740993 olmalıdır. YAML'de 00123 çevresindeki tırnakları kaldırıp tekrarlayın: değeri sayısal 123 olur. Her iki dosya da geçerli olsa bile bu fark kimlikler için önemlidir.

Sorular ve sorun giderme

Yinelenen anahtarlı JSON burada neden başarısız oluyor ama başka yerde biçimlendiriliyor?

JSON Biçimlendirici, yinelenen anahtarlar için uyarı verip onları koruyabilir. Bu dönüştürücü, bir eşlemeye dönüştürmenin anlamlarını değiştirebilmesi nedeniyle onları reddeder. Kaynakta hangi değerin olması gerektiğine karar verin ve dönüştürmeden önce yineleneni kaldırın.

Yorumlar ve YAML devralması korunacak mı?

JSON'da yorumlar veya çapalar yoktur. Takma adlar genişletilir ve birleştirme anahtarları devralma olarak uygulanmak yerine aynen dışa aktarılır. Amaçlanan veriyi genişletin ve sonucu inceleyin; dönüştürme, her YAML özelliğinin aslına sadık yeniden yazımı değildir.

Büyük sayılar hedef uygulamada güvenli mi?

Dönüştürücü desteklenen sayı yazımlarını ve büyük tam sayı değerlerini korur, ancak sonraki bir program bunları daha düşük hassasiyetle ayrıştırabilir. Sayısal görünen bir değer kimlikse tırnak içinde bir dizge kullanın ve hedef uygulamanın ayrıştırıcısını test edin.