UltKit

Penukar YAML ke JSON

Tukar konfigurasi YAML, spesifikasi OpenAPI dan fail CI kepada JSON yang boleh dibaca oleh mana-mana penghurai, API atau pengesah skema. Muat naik fail .yaml atau .yml dan muat turun JSON berinden.

Penukar Data

atau seret Fail CSV, TSV, TXT … ke sini ·

Maks 95 MB setiap fail· Sehingga 20 fail· Dipadam selepas 30 minit

Output

Fail diproses pada pelayan kami dan dipadam selepas 30 minit.

Cara menggunakan alat ini

  1. 1

    Muat naik fail YAML

    Tambah fail .yaml atau .yml, sehingga 20 fail sekali gus dan 95 MB setiap satu. Nama asal dikekalkan; fail JSON menggunakan nama yang sama dengan sambungan baharu.

  2. 2

    Pilih berinden atau padat

    Format kemas diaktifkan, iaitu JSON diberi inden supaya mudah dibaca dan disemak kodnya. Matikannya di bawah Tetapan lanjutan untuk mendapatkan fail satu baris yang boleh ditampal ke dalam badan permintaan.

  3. 3

    Tukar dan gunakan

    Tekan Tukar ke JSON, muat turun, kemudian serahkan fail itu kepada API, pengesah atau skrip yang memerlukannya.

Mengapa pembangun menukar YAML ke JSON

YAML ditulis untuk manusia: inden menggantikan pendakap, ada komen, dan kebanyakan rentetan tanpa tanda petikan. Itulah sebabnya ia menjadi format manifes Kubernetes, aliran kerja GitHub Actions, fail Docker Compose dan spesifikasi OpenAPI yang disunting secara manual oleh pasukan. JSON pula ditulis untuk atur cara. Setiap bahasa mempunyai penghurai JSON dalam pustaka standardnya, pelayar menghuraikannya secara asli, dan kebanyakan API HTTP tidak menerima format lain.

Jadi penukaran berlaku di sempadan. Jurutera platform menyalurkan manifes melalui jq, yang hanya membaca JSON. Pembangun bahagian belakang menghantar spesifikasi OpenAPI kepada penjana kod yang mahukan JSON. Penguji memuatkan data fixture yang ditulis dalam YAML ke dalam suite ujian JavaScript. Dalam setiap kes, YAML kekal sebagai sumber rujukan dan JSON ialah artifak binaan. Untuk satu direktori suapan atau eksport dan bukannya konfigurasi, XML ke JSON mengendalikan format penanda yang lebih lama dengan cara yang sama.

Bagaimana YAML dan JSON berkembang bersama

YAML pertama kali dicadangkan oleh Clark Evans
2001
YAML 1.2 menjadikan JSON subset YAML
2009
RFC 8259, standard JSON semasa
2017
Semakan YAML 1.2.2 diterbitkan
2021

Apakah yang berlaku kepada ciri khusus YAML dalam JSON

Anchor (&defaults) dan aliasnya (*defaults) membolehkan YAML menggunakan semula sesuatu blok. JSON tiada rujukan, jadi setiap alias digantikan dengan salinan penuh blok yang di-anchor.

  • JSON boleh menjadi jauh lebih panjang daripada YAML
  • Kunci gabungan (<<: *defaults) dikembangkan dengan cara yang sama
Konfigurasi YAML kecil sebagai JSON berformat kemas
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Fakta format YAML dan JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") ialah format data mesra manusia yang mula dilancarkan pada 2001. Ia menggunakan lekukan dan bukannya kurungan, menyokong komen, dan merupakan superset JSON. Ia digunakan secara meluas untuk konfigurasi dalam Docker Compose, Kubernetes, GitHub Actions dan banyak aplikasi. Pergantungannya pada ruang kosong menjadikannya mudah rosak akibat satu ruang yang tersalah letak, dan sesetengah nilai, seperti "no" atau tarikh, boleh ditafsirkan secara tidak dijangka.

Pemampatan
–
Ketelusan
–
Animasi
–
Diperkenalkan
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Penukar YAML

JSON

JavaScript Object Notation

JSON ialah format teks ringan untuk data berstruktur, dipopularkan oleh Douglas Crockford pada awal 2000-an dan dipiawaikan sebagai RFC 8259 dan ECMA-404. Ia mewakili objek, tatasusunan, rentetan, nombor, boolean dan null dengan sintaks yang mudah dibaca. Ia ialah format lalai untuk API web, fail konfigurasi dan pertukaran data antara aplikasi dalam hampir semua bahasa pengaturcaraan. Ia tidak mempunyai komen, tarikh atau skema terbina dalam, dan fail bersarang yang besar sukar dibaca tanpa pemapar.

Pemampatan
–
Ketelusan
–
Animasi
–
Diperkenalkan
2001 · Douglas Crockford
Penukar JSON

Orang menukar YAML ke JSON apabila konfigurasi atau spesifikasi yang ditulis untuk manusia perlu dimasukkan ke dalam mesin: permintaan API, pengesah skema atau alat tanpa penghurai YAML.

Soalan lazim penukar YAML ke JSON

Mengapa perlu menukar YAML ke JSON jika kedua-duanya menyimpan data yang sama?

Kerana banyak alat hanya boleh menghuraikan salah satu daripadanya. Pembaca JSON sedia ada dalam setiap bahasa pengaturcaraan dan pelayar, manakala YAML memerlukan pustaka tambahan. Badan permintaan untuk API REST, pengesah JSON Schema, jq, dan fail seperti package.json atau manifest.json sesuatu sambungan pelayar semuanya mengharapkan JSON.

Apakah yang berlaku kepada ulasan dalam YAML saya?

Komen dibuang. RFC 8259 tidak menyediakan sintaks komen untuk JSON, jadi baris yang bermula dengan # tiada tempat untuk diletakkan. Simpan fail YAML sebagai sumber berdokumen dan anggap JSON sebagai salinan janaan yang boleh dijana semula pada bila-bila masa.

Mengapa NO atau off bertukar menjadi false?

Penghurai yang mengikut YAML 1.1 membaca yes, no, on dan off sebagai boolean, jadi kod negara seperti NO untuk Norway boleh menjadi false. YAML 1.2 mengehadkan boolean kepada true dan false sahaja, tetapi tidak semua alat mengikutinya. Letakkan nilai sedemikian dalam tanda petikan di dalam YAML, seperti "NO", dan nilai itu kekal sebagai rentetan dalam JSON.

Bolehkah saya menukar templat CloudFormation yang ditulis dalam YAML?

AWS CloudFormation menerima kedua-dua format, tetapi tag ringkas seperti !Ref dan !GetAtt hanya wujud dalam YAML. Templat JSON menulisnya sebagai fungsi penuh, {"Ref": "MyBucket"} atau {"Fn::GetAtt": [...]}. Tulis semula tag ringkas dalam bentuk penuh sebelum menukar supaya templat JSON kekal sah.

Bagaimanakah cara menukar ke arah sebaliknya?

Gunakan JSON ke YAML. Ini arah yang lazim apabila respons API atau fail janaan perlu dijadikan fail konfigurasi yang mudah dibaca dalam repositori.