Konverter JSON ke YAML

Ubah JSON ke YAML dan sebaliknya, urutan kunci tetap

Ubah JSON ke YAML dan sebaliknya, urutan kunci tetapDeteksi otomatis
Masukan JSON
Keluaran YAML

Panduan alat

Tentang Konverter JSON ke YAML

Konverter ini mengubah JSON menjadi YAML dan YAML kembali menjadi JSON, sehingga konfigurasi yang sama bisa berpindah antara payload API dan manifest Kubernetes, berkas Docker Compose, workflow GitHub Actions, atau dokumen OpenAPI tanpa perlu diketik ulang.

Konversi berjalan sambil Anda mengetik, urutan kunci dipertahankan persis seperti yang ditulis, dan indentasi dapat diatur ke 2 atau 4 spasi. Kesalahan sintaks dilaporkan lengkap dengan baris dan kolomnya.

Cara mengonversi JSON to YAML

  1. Tempelkan JSON Anda ke panel masukan. Hasil YAML langsung muncul, tanpa tombol yang perlu ditekan.
  2. Gunakan tombol arah untuk beralih ke YAML to JSON, misalnya untuk memberi manifest ke skrip yang hanya membaca JSON.
  3. Pilih indentasi 2 atau 4 spasi agar sesuai gaya repositori Anda. Berkas Kubernetes dan GitHub Actions umumnya memakai 2.
  4. Jika masukannya tidak valid, baca baris dan kolom yang dilaporkan, perbaiki titik itu, dan keluarannya akan menyegarkan diri sendiri.

Kapan Anda memerlukannya

  • Mengubah resource JSON hasil dump kubectl menjadi manifest YAML yang mudah dibaca dan siap di-commit.
  • Mengonversi blok service Docker Compose saat menguji konfigurasi yang dihasilkan otomatis.
  • Memindahkan spesifikasi OpenAPI antara bentuk JSON dan YAML, karena perkakas di masing-masing sisi punya preferensi berbeda.
  • Menulis ulang potongan workflow GitHub Actions yang dihasilkan sebagai JSON menjadi YAML yang diharapkan runner.

Aturan YAML yang merusak hasil konversi

YAML 1.2 hampir merupakan superset dari JSON, sehingga JSON yang valid biasanya juga YAML yang valid. Masalah muncul di arah sebaliknya, ketika YAML menebak tipe yang tidak pernah ditebak oleh JSON.

  • Norway problem: NO, no, yes, on, dan off dibaca sebagai boolean oleh parser YAML 1.1, sehingga kode negara NO berubah menjadi false. Beri tanda kutip pada nilai semacam itu.
  • Nol di depan: nilai seperti 010 bisa dibaca sebagai bilangan oktal alih-alih string. Beri tanda kutip pada identifier, kode pos, dan nomor part.
  • Nomor versi: 1.10 tanpa tanda kutip menjadi float 1.1 dan nol di belakangnya hilang.
  • Indentasi wajib memakai spasi, jangan pernah tab, dan setiap titik dua yang memperkenalkan nilai harus diikuti satu spasi.

Pertanyaan umum tentang JSON ke YAML

Apakah konverter ini mengubah urutan kunci saya?
Tidak. Kunci keluar dalam urutan yang Anda berikan, sehingga diff di version control tetap kecil.
Apa yang terjadi pada komentar saya?
JSON tidak punya sintaks komentar, jadi JSON to YAML tidak bisa mengarang komentar, dan YAML to JSON membuang komentar yang ada di sumbernya. Simpan berkas aslinya bila komentar itu penting.
Apakah keluarannya akan memuat anchor dan alias?
Tidak. Struktur berulang ditulis lengkap, sehingga parser apa pun dapat membaca hasilnya tanpa dukungan alias.
Apakah konfigurasi saya diunggah ke suatu tempat?
Tidak. Parsing dan konversi terjadi di peramban Anda dengan js-yaml, jadi apa pun yang Anda tempel tidak meninggalkan mesin Anda dan tidak disimpan oleh wetool.site.
Kenapa tipe sebuah nilai YAML berubah setelah dikonversi?
YAML menebak tipe untuk skalar tanpa tanda kutip. Beri tanda kutip pada nilai itu di sumber YAML dan hasilnya akan menjadi string JSON.

JSON dibandingkan dengan YAML

JSON bersifat ketat dan tidak ambigu sehingga cocok sebagai format pertukaran, tetapi tidak punya komentar dan menjadi ramai ketika bersarang dalam. YAML lebih enak dibaca saat review, dengan konsekuensi penebakan tipe dan kepekaan terhadap indentasi. Kebanyakan tim menyimpan konfigurasi dalam YAML dan bertukar JSON di perbatasan sistem, dan untuk itulah konversi dua arah ini ada.

Daftar periksa tanda kutip sebelum Anda commit

Sebagian besar deployment yang rusak akibat konversi berawal dari satu nilai yang kehilangan tipenya. Telusuri keluaran YAML untuk kasus-kasus berikut.

  • Kode negara dan kode bahasa, terutama NO, serta nilai dua huruf mana pun yang terbaca seperti sebuah kata.
  • Angka yang sebenarnya identifier: nomor akun, port berlapis nol, apa pun yang diawali angka nol.
  • Versi dan tag image seperti 1.10 atau 3.20, yang kehilangan nol di belakang ketika diperlakukan sebagai float.