UltKit

Konversi JSON ke YAML

Tulis ulang JSON sebagai YAML yang mudah dibaca, ditinjau, dan diberi komentar. Unggah file .json dan dapatkan .yaml berindentasi dengan kunci, nilai, dan urutan yang sama, siap dimasukkan ke repositori.

Konverter Data

atau jatuhkan file CSV, TSV, TXT … di sini ·

Maks. 95 MB per file· Hingga 20 file· Dihapus setelah 30 menit

Keluaran

File diproses di server kami dan dihapus setelah 30 menit.

Cara menggunakan alat ini

  1. 1

    Tambahkan file JSON

    Unggah respons API, ekspor pengaturan, atau manifes hasil generator dalam format .json, hingga 20 file dan masing-masing 95 MB. Setiap file harus berisi satu nilai JSON yang valid.

  2. 2

    Biarkan pengaturan bawaan

    YAML sudah terpilih di Konversi ke. Untuk file konfigurasi tidak ada lagi yang perlu diubah; hasilnya memakai indentasi dua spasi.

  3. 3

    Konversi lalu commit

    Tekan Konversi ke YAML, unduh file .yaml, tambahkan komentar di bagian yang akan dibutuhkan pembaca berikutnya, lalu commit.

Jawaban

Bagaimana cara mengonversi JSON ke YAML?

Unggah file .json lalu tekan Konversi ke YAML. Objek menjadi blok kunci: nilai berindentasi, array menjadi daftar dengan tanda hubung, dan string yang bisa salah dibaca YAML tetap memakai tanda kutip.

Mengapa mengubah JSON menjadi YAML untuk file konfigurasi

Sebagian besar JSON dihasilkan perangkat lunak: respons API, ekspor pengaturan, keluaran generator. Sebagian besar YAML dirawat manusia. Konversi biasanya menandai saat data berhenti menjadi keluaran mesin dan berubah menjadi milik tim, misalnya manifes deployment yang disimpan di Git, pipeline CI, atau sekumpulan variabel Ansible.

Contoh umum: Anda memanggil API cloud, menerima deskripsi resource berupa JSON 200 baris, dan ingin menyimpannya sebagai infrastructure as code. Konversi memberi Anda file tanpa kurung kurawal dan koma, di mana perubahan satu baris menghasilkan diff satu baris dan nilai yang janggal bisa dijelaskan lewat komentar. Hal yang sama berlaku untuk fixture pengujian dan file terjemahan yang disunting non-developer. Jika yang Anda butuhkan justru tabel datar untuk spreadsheet atau laporan, JSON ke CSV lebih cocok.

Alat yang file konfigurasinya berformat YAML

Tempat YAML hasil konversi biasanya dipakai
OrganisasiPersyaratanSumber
GitHub ActionsWorkflow disimpan di .github/workflows sebagai file .yml atau .yamlDokumentasi GitHub
GitLab CI/CDPipeline didefinisikan di .gitlab-ci.yml pada root repositoriDokumentasi GitLab
Docker ComposeLayanan dijelaskan di compose.yaml (dulu docker-compose.yml)Dokumentasi Docker
AnsiblePlaybook dan file variabel ditulis dalam YAMLDokumentasi Ansible
KubernetesManifes menerima JSON atau YAML; dokumentasi dan chart Helm memakai YAMLKubernetes

Contoh JSON ke YAML dengan nilai yang menjebak

Keluaran YAML untuk {"nama":"api","versi":"1.10","debug":false,"tag":["web","asia"],"negara":"NO"}
nama: api
versi: "1.10"
debug: false
tag:
  - web
  - asia
negara: "NO"

Kelebihan YAML

  • Komentar dengan #
  • Diff lebih pendek saat code review
  • Tanpa kurung kurawal, koma, atau tanda kutip di sebagian besar baris
  • Teks multibaris dengan block scalar |

Yang perlu diwaspadai

  • Indentasi bermakna, jadi satu spasi nyasar mengubah struktur
  • Tab tidak boleh dipakai untuk indentasi
  • String tanpa tanda kutip bisa terbaca sebagai angka atau boolean
  • Parser lebih lambat dan kurang seragam dibanding JSON

Contoh di atas menunjukkan mengapa sekadar mencari-dan-mengganti kurung kurawal tidak cukup. Versi 1.10 adalah string di JSON; jika ditulis tanpa kutip di YAML, nilai itu dibaca sebagai angka 1.1. NO, kode ISO untuk Norwegia, akan dibaca sebagai false oleh parser YAML 1.1 seperti PyYAML. Keduanya tetap bertanda kutip, sementara angka dan boolean sungguhan tetap ditulis polos.

Perbandingan JSON dan YAML

JSON

JavaScript Object Notation

JSON adalah format teks ringan untuk data terstruktur, dipopulerkan oleh Douglas Crockford pada awal 2000-an dan distandardisasi sebagai RFC 8259 dan ECMA-404. Format ini merepresentasikan objek, array, string, angka, boolean, dan null dengan sintaksis yang sederhana dan mudah dibaca. JSON adalah format default untuk API web, file konfigurasi, dan pertukaran data antaraplikasi di hampir setiap bahasa pemrograman. JSON tidak memiliki komentar, tanggal, atau skema bawaan, dan file bersarang yang besar sulit dibaca tanpa penampil.

Kompresi
–
Transparansi
–
Animasi
–
Diperkenalkan
2001 · Douglas Crockford
Konverter JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") adalah format data yang mudah dibaca manusia dan pertama kali dirilis pada 2001. Format ini menggunakan indentasi alih-alih tanda kurung, mendukung komentar, dan merupakan superset dari JSON. YAML banyak digunakan untuk konfigurasi di Docker Compose, Kubernetes, GitHub Actions, dan banyak aplikasi. Ketergantungannya pada spasi membuatnya mudah rusak hanya karena satu spasi yang salah tempat, dan sebagian nilai, seperti "no" atau tanggal, dapat ditafsirkan secara tak terduga.

Kompresi
–
Transparansi
–
Animasi
–
Diperkenalkan
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Konverter YAML

Orang mengonversi JSON ke YAML ketika data dari generator atau API harus menjadi file konfigurasi yang dirawat manusia, ditinjau dalam pull request, dan diberi komentar.

Pertanyaan seputar konversi JSON ke YAML

Apakah dokumen JSON otomatis sudah menjadi YAML yang valid?

Menurut YAML 1.2, ya: revisi tahun 2009 itu ditulis agar setiap dokumen JSON juga merupakan dokumen YAML. Anda bisa menempelkan JSON ke file .yaml dan sebagian besar alat akan menerimanya. Konversi dilakukan demi keterbacaan: gaya blok tanpa kurung kurawal, tanda kutip, dan koma adalah yang diharapkan peninjau dan pengelola berikutnya.

Mengapa sebagian nilai diberi tanda kutip setelah JSON diubah ke YAML?

Karena tanpa tanda kutip YAML akan membacanya sebagai tipe lain. String versi seperti 1.10 akan menjadi angka 1.1, dan yes atau off bisa menjadi boolean di parser lama. String yang terlihat seperti angka, tanggal, atau boolean perlu tanda kutip agar tetap menjadi string, jadi konversi yang cermat mempertahankannya.

Bisakah saya menambahkan komentar ke file YAML hasil konversi JSON?

Bisa, dan justru itu alasan umum orang mengonversi. Tulis # diikuti catatan Anda di akhir baris atau di baris tersendiri. JSON tidak punya cara untuk menjelaskan mengapa sebuah nilai diatur; YAML punya, sehingga peninjauan dan serah terima jadi lebih mudah.

Mengapa file YAML saya gagal dengan galat karakter tab?

Spesifikasi YAML melarang tab untuk indentasi; hanya spasi yang dihitung. Konverter ini menulis spasi, tetapi editor yang diatur menyisipkan tab bisa merusak file pada suntingan berikutnya. Atur editor Anda agar memakai spasi untuk file .yaml.

Apakah Kubernetes menerima manifes YAML hasil konversi?

kubectl membaca JSON maupun YAML, jadi datanya sama saja; versi YAML hanyalah bentuk yang dipakai sebagian besar dokumentasi, chart Helm, dan code review. Jika nanti Anda perlu JSON lagi untuk jq atau panggilan API, YAML ke JSON membaliknya.