Konverter YAML ke JSON

Konversikan YAML ke JSON dan JSON ke YAML, lengkap dengan baris dan kolom persis dari setiap galat sintaks.

Cara menggunakan

  1. Tempel YAML atau JSON — alat ini mengenali sendiri mana yang Anda tempel, atau pilih arah konversinya sendiri.
  2. Klik "Konversi". Bila sintaksnya rusak, baca baris dan kolom pada pesannya serta tanda sisipan di bawah karakter yang bermasalah.
  3. Salin hasilnya atau unduh sebagai converted.json atau converted.yaml. Tidak ada yang diunggah.

Tentang alat ini

YAML dan JSON menggambarkan hal yang sama — peta, daftar, string, angka, boolean, dan null — dengan prioritas yang berlawanan. JSON memakai kurung kurawal dan tanda kutip, yang disukai mesin dan sering salah diketik manusia. YAML memakai indentasi dan nyaris tanpa tanda baca, yang disukai manusia sampai satu spasi nyasar mengubah bentuk dokumennya. Mengonversi antara keduanya adalah pekerjaan rutin: membaca manifes Kubernetes atau alur kerja GitHub Actions sebagai JSON agar bisa diolah skrip, atau mengubah respons API kembali menjadi YAML untuk berkas konfigurasi. Alat ini bekerja dua arah dan mendeteksi mana yang Anda tempel.

Konversinya adalah separuh yang mudah; justru pada YAML yang rusak alat ini mencurahkan usahanya. Galat sintaks dilaporkan sebagai baris dan kolom yang dihitung seperti editor menghitungnya, disertai cuplikan baris di sekitarnya dan tanda sisipan tepat di bawah karakter yang menghentikan parser. Posisinya tidak selalu seperti yang Anda kira. Tab yang dipakai untuk indentasi ditolak tepat di tab itu, dan cuplikannya mencetaknya sebagai panah supaya Anda bisa melihat sesuatu yang sebenarnya tak terlihat. Tanda kutip yang tidak ditutup dilaporkan di akhir berkas, bukan di tanda kutip pembukanya, karena di situlah parser kehabisan teks saat mencari penutupnya. Kunci ganda ditandai pada kemunculannya yang kedua, dan di sini itu galat, bukan peringatan. Galat JSON mendapat perlakuan yang sama: setiap browser merumuskannya berbeda dan sebagian hanya melaporkan offset karakter, jadi baris dan kolomnya dihitung di sini dan hasilnya identik di mana pun.

YAML bisa mengungkapkan hal-hal yang tidak bisa diungkapkan JSON, dan setiap satunya disebutkan secara terbuka alih-alih diam-diam mengubah data Anda. Anchor dan alias diperluas, sehingga sebuah alias menjadi salinan penuh dari nilai yang di-anchor, dan Anda diberi tahu. Merge key tidak: parser berjalan dengan skema JSON, yang tidak menyelesaikannya, jadi baris << bertahan sebagai kunci literal disertai peringatan untuk menggabungkan kolom-kolom itu secara manual. Berkas yang memuat beberapa dokumen yang dipisahkan --- menjadi sebuah array JSON, satu item per dokumen. Nilai .inf dan .nan keluar sebagai null, dan bilangan bulat yang sangat besar kehilangan digit terakhirnya; keduanya ditandai. Skema itu juga merupakan pilihan keamanan: tag seperti !!js/function ditolak sebagai tak dikenal alih-alih diinstansiasi. Dan tidak satu pun dari semua itu bepergian ke mana-mana — semuanya berjalan di perangkat Anda.

Pertanyaan yang sering diajukan

Apakah YAML atau JSON saya keluar dari browser?

Tidak. Teksnya diurai dan dikonversi oleh JavaScript di perangkat Anda sendiri — tidak ada yang dikirim ke mana pun, disimpan, atau dicatat. Ini penting di sini: sebuah manifes Kubernetes membawa nama host, port, nama bucket, dan service account.

Apa arti persis dari baris dan kolom pada pesan galat?

Itulah tempat parser menyerah, dihitung mulai dari 1 seperti di editor Anda, dengan tanda sisipan tepat di bawah karakter tersebut. Satu kasus kerap mengejutkan orang: tanda kutip yang tidak ditutup dilaporkan di akhir berkas, jadi telusuri ke belakang untuk mencari tanda kutip terakhir yang Anda buka.

Apakah anchor dan alias didukung?

Ya. Setiap alias menjadi salinan penuh dari nilai yang di-anchor di dalam JSON, dan alat ini memberitahukannya. Merge key adalah pengecualian: mereka tidak diselesaikan, tanda << bertahan sebagai kunci literal, dan Anda mendapat peringatan eksplisit alih-alih hasil yang diam-diam keliru.

Bisakah alat ini mengonversi berkas dengan beberapa dokumen yang dipisahkan ---?

Bisa. JSON tidak mengenal konsep banyak dokumen dalam satu berkas, jadi setiap dokumen YAML menjadi satu item dari sebuah array JSON, sesuai urutannya, dan sebuah pemberitahuan menyebutkan berapa banyak yang ditemukan.

Kenapa "yes" keluar sebagai string, bukan true?

Karena YAML 1.2 hanya memperlakukan true dan false sebagai boolean; yes, no, on, dan off tetap string. Parser 1.1 yang lebih lama mengonversinya — aturan yang sama yang mengubah kode negara NO menjadi false. Beri tanda kutip pada nilai apa pun yang harus tetap berupa teks.

Alat terkait

Tautan panjang? Perpendek secara gratis

Vai.la mengubah URL apa pun menjadi tautan pendek dengan statistik klik, QR Code, dan biolink Anda sendiri.

Vai.la tidak bertanggung jawab atas cara alat-alat ini digunakan maupun atas keputusan yang diambil berdasarkan hasilnya.