UltKit

JSON-u YAML-a çevirmək

JSON-u insanların oxuya, yoxlaya və şərh yaza biləcəyi YAML-a çevirin. .json fayllarını yükləyin və eyni açarlar, dəyərlər və ardıcıllıqla girintili .yaml əldə edin, onu birbaşa repozitoriyaya əlavə edə bilərsiniz.

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

    JSON fayllarını əlavə edin

    API cavablarını, ixrac edilmiş ayarları və ya yaradılmış manifestləri .json formatında yükləyin: ən çox 20 fayl, hər biri 95 MB-a qədər. Hər fayl bir düzgün JSON dəyəri ehtiva etməlidir.

  2. 2

    Standart ayarları saxlayın

    Çevriləcək format bölməsində YAML artıq seçilib. Konfiqurasiya faylı üçün başqa heç nəyi dəyişmək lazım deyil; nəticədə iki boşluqluq girinti istifadə olunur.

  3. 3

    Çevirin və commit edin

    YAML formatına Çevir → düyməsinə basın, .yaml fayllarını endirin, növbəti oxucuya lazım olacaq yerlərə şərh əlavə edin və commit edin.

Cavab

JSON-u YAML-a necə çevirmək olar?

.json faylını yükləyin və YAML formatına Çevir → düyməsinə basın. Obyektlər girintili açar: dəyər bloklarına, massivlər tirəli siyahılara çevrilir, YAML-ın səhv oxuya biləcəyi sətirlər isə dırnaqlarını saxlayır.

Konfiqurasiya faylları üçün JSON-u niyə YAML-a çevirmək lazımdır

JSON-un çoxunu proqramlar yaradır: API cavabı, ayarların ixracı, generatorun nəticəsi. YAML-ı isə əsasən insanlar saxlayır. Çevirmə adətən məlumatın maşın çıxışı olmaqdan çıxıb komandaya məxsus olduğu anı bildirir: Git-ə əlavə edilən deployment manifesti, CI pipeline və ya Ansible dəyişənləri kimi.

Tipik hal: bulud API-sinə sorğu göndərib resursun 200 sətirlik JSON təsvirini alırsınız və onu infrastruktur kodu kimi saxlamaq istəyirsiniz. Çevirmə sizə mötərizəsiz və vergülsüz fayl verir: bir sətirlik dəyişiklik bir sətirlik fərq yaradır, qəribə dəyərləri isə şərhlərlə izah edə bilərsiniz. Eyni şey test fixture-lərinə və proqramçı olmayanların redaktə etdiyi tərcümə fayllarına da aiddir. Əgər cədvəl və ya hesabat üçün düz cədvəl lazımdırsa, JSON-dan CSV-yə daha uyğundur.

Konfiqurasiya faylları YAML olan alətlər

Çevrilmiş YAML adətən harada istifadə olunur
TəşkilatTələbMənbə
GitHub Actionsİş axınları .github/workflows qovluğunda .yml və ya .yaml faylları kimi saxlanırGitHub Docs
GitLab CI/CDPipeline repozitoriyanın kökündəki .gitlab-ci.yml faylında təyin olunurGitLab Docs
Docker ComposeServislər compose.yaml faylında təsvir olunur (əvvəlki adı docker-compose.yml)Docker Docs
AnsiblePlaybook və dəyişən faylları YAML ilə yazılırAnsible Docs
KubernetesManifestlər JSON və ya YAML qəbul edir; sənədlər və Helm çartları YAML işlədirKubernetes

Çətin dəyərlərlə JSON-dan YAML-a nümunə

{"name":"api","version":"1.10","debug":false,"tags":["veb","az"],"country":"NO"} üçün YAML nəticəsi
name: api
version: "1.10"
debug: false
tags:
  - veb
  - az
country: "NO"

YAML nə verir

  • # ilə şərhlər
  • Kod rəyində daha qısa fərqlər
  • Əksər sətirlərdə mötərizə, vergül və dırnaq yoxdur
  • | blok skalyarları ilə çoxsətirli mətn

Nəyə diqqət etməli

  • Girinti məna daşıyır, ona görə artıq boşluq strukturu dəyişir
  • Girinti üçün tablardan istifadə qadağandır
  • Dırnaqsız sətirlər ədəd və ya məntiqi dəyər kimi oxuna bilər
  • Parserlər JSON-dan daha yavaş və daha az vahiddir

Nümunə göstərir ki, mötərizələri sadəcə tapıb dəyişmək kifayət deyil. 1.10 versiyası JSON-da sətirdir; YAML-da çılpaq yazılsa, 1.1 ədədi kimi oxunar. Norveçin ISO kodu olan NO isə PyYAML kimi YAML 1.1 parserlərində false kimi oxunar. Hər ikisi dırnaqlarını saxlayır, həqiqi ədədlər və məntiqi dəyərlər isə çılpaq qalır.

JSON və YAML müqayisəsi

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

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

İnsanlar JSON-u YAML-a o zaman çevirir ki, yaradılmış və ya API məlumatı insanların saxladığı, pull request-lərdə yoxladığı və şərhlərlə izah etdiyi konfiqurasiya faylına çevrilməlidir.

JSON-u YAML-a çevirmək barədə suallar

JSON artıq düzgün YAML sayılırmı?

YAML 1.2 üzrə bəli: 2009-cu il redaksiyası elə yazılıb ki, hər JSON sənədi eyni zamanda YAML sənədidir. JSON-u .yaml faylına yapışdıra bilərsiniz və əksər alətlər onu qəbul edəcək. Çevirmənin məqsədi oxunaqlılıqdır: mötərizəsiz, dırnaqsız və vergülsüz blok üslubunu rəyçilər və növbəti işçi gözləyir.

YAML-da bəzi dəyərlər niyə dırnaq içində olur?

Çünki dırnaqsız YAML onları başqa tip kimi oxuyar. 1.10 kimi versiya sətri 1.1 ədədinə çevrilər, yes və ya off isə köhnə parserlərdə məntiqi dəyər sayıla bilər. Ədədə, tarixə və ya məntiqi dəyərə bənzəyən sətirlər sətir qalmaq üçün dırnaq tələb edir, ona görə düzgün çevirmə dırnaqları saxlayır.

Çevirdikdən sonra şərh əlavə edə bilərəmmi?

Bəli, və çevirmənin geniş yayılmış səbəblərindən biri budur. # işarəsindən sonra qeydinizi sətrin sonunda və ya ayrıca sətirdə yazın. JSON-da dəyərin niyə belə təyin olunduğunu izah etmək mümkün deyildi; YAML-da mümkündür, bu isə rəyləri və təhvil-təslimi asanlaşdırır.

YAML niyə tab simvolu xətası verir?

YAML spesifikasiyası girinti üçün tabları qadağan edir; yalnız boşluqlar sayılır. Çevirici boşluq yazır, lakin tab əlavə etməyə qurulmuş redaktor növbəti redaktədə faylı poza bilər. Redaktorunuzu .yaml faylları üçün boşluq işlətməyə ayarlayın.

Kubernetes çevrilmiş manifesti qəbul edəcəkmi?

kubectl həm JSON, həm YAML oxuyur, ona görə məlumat hər iki halda eynidir; YAML variantı sadəcə əksər sənədlərdə, Helm çartlarında və kod rəylərində istifadə olunandır. Sonradan jq və ya API çağırışı üçün yenidən JSON lazım olsa, YAML-dan JSON-a bunu geri qaytarır.