UltKit

YAML-ı JSON-a çevirmək

YAML konfiqurasiyasını, OpenAPI spesifikasiyalarını və CI fayllarını istənilən parserin, API-nin və ya sxem validatorunun oxuduğu JSON-a çevirin. .yaml və ya .yml fayllarını yükləyin və girintili JSON endirin.

Məlumat çevirici

və ya CSV, TSV, TXT … faylları bura sürüşdürün ·

Hər fayl üçün maks. 95 MB· 20 fayla qədər· 30 dəqiqədən sonra silinir

Nəticə

Fayllar serverlərimizdə emal olunur və 30 dəqiqədən sonra silinir.

Bu alətdən necə istifadə etməli

  1. 1

    YAML fayllarını yükləyin

    Hər dəfəyə 20-yə qədər, hər biri 95 MB-dək .yaml və ya .yml faylları əlavə edin. Orijinal adları saxlayın; JSON faylları eyni adı yeni uzantı ilə alır.

  2. 2

    Girintili və ya yığcam formatı seçin

    Oxunaqlı formatlama aktivdir, JSON-u oxumaq və kodu yoxlamaq üçün girintilərlə yazır. Sorğunun gövdəsinə yapışdırmaq üçün tək sətirlik fayl lazımdırsa, onu Əlavə ayarlar bölməsində söndürün.

  3. 3

    Çevirin və istifadə edin

    JSON formatına çevir düyməsini basın, faylı endirin və onu lazım olan API-yə, validatora və ya skripte verin.

Proqramçılar YAML-ı niyə JSON-a çevirir

YAML insanlar üçün yazılıb: fiqurlu mötərizə əvəzinə girinti, şərhlər, əksər sətirlərdə dırnaq yoxdur. Buna görə komandaların əllə redaktə etdiyi Kubernetes manifestləri, GitHub Actions workflow-ları, Docker Compose faylları və OpenAPI spesifikasiyaları bu formatdadır. JSON isə proqramlar üçün yazılıb. Hər dilin standart kitabxanasında JSON parseri var, brauzerlər onu doğma şəkildə oxuyur, əksər HTTP API-lər başqa format qəbul etmir.

Beləliklə, çevirmə sərhəddə baş verir. Platforma mühəndisi manifesti yalnız JSON oxuyan jq-yə ötürür. Backend developer OpenAPI spesifikasiyasını JSON istəyən kod generatoruna göndərir. Test mühəndisi YAML-da yazılmış test datasını JavaScript test dəstinə yükləyir. Hər halda YAML əsas mənbə olaraq qalır, JSON isə build nəticəsidir. Konfiqurasiya deyil, bütöv qovluq dolu lent və ya ixrac faylları üçün isə XML-dən JSON-a köhnə markup formatını eyni qaydada çevirir.

YAML və JSON birlikdə necə inkişaf edib

YAML-ı ilk dəfə Clark Evans təklif etdi
2001
YAML 1.2 JSON-u YAML-ın alt çoxluğu etdi
2009
RFC 8259, hazırkı JSON standartı
2017
YAML 1.2.2 redaksiyası dərc olundu
2021

Yalnız YAML-a məxsus imkanlar JSON-da necə olur

Anker (&defaults) və onun aliasları (*defaults) YAML-da blokdan təkrar istifadə etməyə imkan verir. JSON-da istinad yoxdur, ona görə hər alias ankerlənmiş blokun tam surəti ilə əvəz olunur.

  • JSON YAML-dan nəzərəçarpacaq dərəcədə uzun ola bilər
  • Birləşdirmə açarları (<<: *defaults) eyni qaydada açılır
Kiçik YAML konfiqurasiyası oxunaqlı formatlı JSON kimi
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

YAML və JSON formatları haqqında faktlar

YAML

YAML

YAML ("YAML Ain't Markup Language") ilk dəfə 2001-ci ildə buraxılmış insan üçün rahat məlumat formatıdır. Mötərizə əvəzinə girintidən istifadə edir, şərhləri dəstəkləyir və JSON-un üst çoxluğudur. Docker Compose, Kubernetes, GitHub Actions və bir çox tətbiqdə konfiqurasiya üçün geniş istifadə olunur. Boşluqdan asılı olması onu tək yanlış yerləşdirilmiş boşluqla pozmağı asanlaşdırır, "no" və ya tarixlər kimi bəzi dəyərlər isə gözlənilmədən şərh oluna bilər.

Sıxılma
–
Şəffaflıq
–
Animasiya
–
İlk dəfə təqdim edilib
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML konvertoru

JSON

JavaScript Object Notation

JSON strukturlaşdırılmış məlumatlar üçün yüngül mətn formatıdır, 2000-ci illərin əvvəlində Douglas Crockford tərəfindən məşhurlaşdırılıb və RFC 8259 və ECMA-404 kimi standartlaşdırılıb. O, obyektləri, massivləri, sətirləri, ədədləri, məntiqi dəyərləri və null-u sadə, oxunaqlı sintaksislə təqdim edir. Veb API-lər, konfiqurasiya faylları və demək olar ki, bütün proqramlaşdırma dillərində tətbiqlər arasında məlumat mübadiləsi üçün standart formatdır. İçində şərh, tarix və sxem yoxdur, böyük iç-içə fayllar isə görüntüləyicisiz çətin oxunur.

Sıxılma
–
Şəffaflıq
–
Animasiya
–
İlk dəfə təqdim edilib
2001 · Douglas Crockford
JSON konvertoru

İnsanlar üçün yazılmış konfiqurasiya və ya spesifikasiya maşına verilməli olanda YAML-i JSON-a çevirirlər: API sorğusu, sxem validatoru və ya YAML parseri olmayan alət üçün.

YAML-ı JSON-a çevirmək: tez-tez verilən suallar

Eyni məlumatı saxladıqları halda YAML-ı JSON-a niyə çevirməli?

Çünki bir çox alət yalnız birini oxuya bilir. JSON oxuyucuları hər proqramlaşdırma dilində və brauzerdə var, YAML üçün isə əlavə kitabxana lazımdır. REST API sorğu gövdələri, JSON Schema validatorları, jq, həmçinin package.json və ya brauzer əlavəsinin manifest.json faylı kimi fayllar JSON gözləyir.

YAML-dakı şərhlərə nə olur?

Silinir. RFC 8259 JSON üçün şərh sintaksisi nəzərdə tutmur, ona görə # ilə başlayan sətirlərin yeri yoxdur. YAML faylını izahlı mənbə kimi saxlayın, JSON-a isə istənilən vaxt yenidən yarada biləcəyiniz hazır surət kimi baxın.

NO və ya off niyə false-a çevrildi?

YAML 1.1 standartına uyğun parserlər yes, no, on və off sözlərini məntiqi qiymət kimi oxuyur, buna görə Norveç üçün NO kimi ölkə kodu false ola bilər. YAML 1.2 məntiqi qiymətləri yalnız true və false ilə məhdudlaşdırır, lakin bütün alətlər buna əməl etmir. Belə qiymətləri YAML-da "NO" kimi dırnaq içində yazın, onda JSON-da sətir olaraq qalır.

YAML-da yazılmış CloudFormation şablonunu çevirmək olarmı?

AWS CloudFormation hər iki formatı qəbul edir, lakin !Ref və !GetAtt kimi qısa teqlər yalnız YAML-da var. JSON şablonlarında onlar tam funksiya kimi yazılır: {"Ref": "MyBucket"} və ya {"Fn::GetAtt": [...]}. JSON şablonu düzgün qalsın deyə, çevirməzdən əvvəl qısa teqləri uzun formada yenidən yazın.

Əks istiqamətdə necə çevirmək olar?

JSON-dan YAML-a alətindən istifadə edin. API cavabı və ya yaradılmış fayl repozitoriyada oxunaqlı konfiqurasiya faylına çevriləndə adətən bu istiqamət lazım olur.