Langsung ke konten utama
PulsarKit

Ubah YAML ke JSON dan sebaliknya

Satu alat untuk dua arah: arah konversi ditentukan dari file, YAML multi-dokumen didukung, dan setiap kesalahan menyebut barisnya.

Letakkan file di sini

.yaml, .yml, .json, .txt · hingga 300 MB

Arah
Pengaturan lainnya

Cara mengubah YAML ke JSON dan sebaliknya

  1. 1

    Letakkan file YAML atau JSON

    Tambahkan satu file atau hingga dua puluh. Ekstensi .yaml, .yml, dan .json semuanya dikenali, dan satu kelompok file boleh mencampurnya dengan bebas.

  2. 2

    Periksa arah yang terdeteksi

    Arah konversi dipilih dari ekstensi, atau dari isi bila berupa teks biasa. Ubah sendiri kapan saja tebakan otomatis tidak sesuai maksud Anda.

  3. 3

    Ubah dan unduh

    Tekan tombol dan simpan file hasil konversi. Beberapa file dikembalikan dalam satu arsip ZIP.

Mengapa arah konversi harus ditebak dengan hati-hati

Setiap dokumen JSON yang valid juga merupakan YAML yang valid. Jika file diuji lebih dulu dengan parser YAML, file .json biasa akan dianggap YAML dan diubah menjadi dirinya sendiri. Karena itu ekstensi yang menentukan: .json diubah ke YAML, sedangkan .yaml dan .yml diubah ke JSON. Isi file baru menentukan arah untuk .txt dan masukan lain tanpa ekstensi yang jelas, dan di situ pun JSON dicoba lebih dulu karena alasan yang persis sama.

Kunci ganda adalah kesalahan, bukan soal selera

Di JSON, nilai terakhir dari kunci yang berulang menang begitu saja. Di YAML, pengulangan yang sama adalah kesalahan yang layak menghentikan proses, karena justru di file konfigurasi hal ini terjadi. File docker-compose.yml yang mencantumkan ports dua kali di level yang sama membatalkan daftar pertama tanpa tanda apa pun, dan masalahnya biasanya baru ketahuan di produksi. Kedua nomor baris dilaporkan, sehingga Anda bisa melihat definisi mana yang hampir hilang.

Empat skema, dan apa untungnya skema yang lebih sempit

Skema default mengenali tipe YAML yang lazim, termasuk tanggal dan data biner. Core dan json makin ketat secara bertahap, dan failsafe hanya mengenali string, map, dan sequence. Pilih skema yang sempit bila konfigurasi harus dibaca sebagai data harfiah. Dengan begitu, kejutan klasik YAML tidak terjadi: nomor versi yang berubah menjadi float, atau no yang berubah menjadi false.

Konfigurasi tetap di komputer Anda

File konfigurasi berisi nama host, port, nama bucket, dan kadang hal yang lebih rahasia. Justru karena itu konversi ini berlangsung di tab browser, bukan di server. Penguraian dan penulisan hasil berjalan secara lokal, di thread worker (proses latar belakang), dengan kode yang datang bersama halaman. Tidak ada yang diunggah, tidak ada antrean, dan tidak ada yang tersisa setelah tab ditutup.

Pertanyaan yang sering diajukan

Bagaimana arah konversi ditentukan?

Pertama dari ekstensi file: .json diubah ke YAML, sedangkan .yaml dan .yml diubah ke JSON. Untuk .txt dan file lain tanpa ekstensi yang jelas, isi file yang menentukan: teks dicoba sebagai JSON lebih dulu, lalu sebagai YAML. Jika keduanya gagal diurai, Anda diberi tahu dan bisa memilih arah sendiri.

Bagaimana dengan file YAML yang berisi beberapa dokumen?

File yang dibagi dengan penanda --- bisa dibaca dengan dua cara. Jika mode multi-dokumen aktif, setiap dokumen menjadi elemen dalam satu array JSON. Jika mode itu mati, hanya dokumen pertama yang diubah, dan muncul peringatan yang tidak menghentikan proses bahwa sisanya diabaikan. Jadi hasil yang terpotong tidak pernah muncul tanpa pemberitahuan.

Mengapa kunci ganda dianggap kesalahan?

Karena di YAML definisi kedua menimpa yang pertama tanpa tanda apa pun. Begitulah pemetaan port atau variabel lingkungan sering hilang dari file konfigurasi. Konversi berhenti dan menyebut kunci itu beserta kedua nomor barisnya, sehingga Anda yang memutuskan definisi mana yang dimaksud.

Apa itu skema failsafe dan kapan saya membutuhkannya?

Failsafe hanya mengenali string, mapping, dan sequence; tidak ada yang diubah menjadi angka, boolean, tanggal, atau null. Skema ini tepat bila konfigurasi harus dipertahankan apa adanya, misalnya bila nilai seperti 1.10 adalah nomor versi, bukan angka, atau bila “masalah Norwegia” mengubah kode negara no menjadi false.

Apakah komentar YAML ikut tersimpan di JSON?

Tidak, dan memang tidak bisa. JSON sama sekali tidak punya sintaks untuk komentar, jadi semua teks setelah # dibuang saat konversi. Ini sifat format tujuan, bukan kekurangan alat ini. Jika komentar penting bagi Anda, tetap jadikan file YAML sebagai sumber utama.

Apa fungsi pengaturan level flow (gaya inline)?

Pengaturan ini menentukan pada kedalaman berapa keluaran YAML beralih dari gaya blok, dengan tanda hubung dan indentasi, ke gaya inline seperti [a, b] dan {a: b}. Secara bawaan, semua level memakai gaya blok, yang paling mudah dibaca untuk konfigurasi yang diedit manual. Kedalaman positif memadatkan semua yang berada di bawahnya, cocok untuk data yang bersarang dalam.

Apakah anchor dan alias didukung?

Tidak. Anchor, alias, dan merge key (&defaults, *defaults, dan <<), juga tag aplikasi kustom, berada di luar yang bisa dibaca alat ini. File yang memakainya mendapat pesan kesalahan yang jelas dengan nomor barisnya, bukan hasil keliru tanpa peringatan. Untuk konfigurasi yang sebentar lagi dipakai di produksi, kegagalan seperti ini lebih aman.

Apakah file saya diunggah ke suatu tempat?

Tidak. Kedua parser datang bersama halaman dan berjalan di dalam tab browser, jadi konfigurasi Anda tidak pernah dikirim lewat jaringan. Tidak ada komponen server yang menyimpannya, dan tidak ada yang tertinggal setelah tab ditutup.

Alat terkait