AI di perangkat — profesional dan privat.

Konverter JSON ke YAML

JSON ke YAML dengan kutip yang tahan di setiap parser

  • Tanpa unggah
  • Terverifikasi bolak-balik
  • Kutip aman untuk PyYAML

Lepaskan berkas JSON di sini

JSON, NDJSON, atau JSON Lines, sampai 10.0 MB

Keluaran
Parser tujuan
Parser tujuan

Portabel memberi tanda kutip pada nilai yang akan dibaca sebagai tipe lain oleh parser YAML 1.1 atau parser stempel waktu.

Tata letak
2 spasi
Gaya null

Membaca ulang YAML dengan parser independen dan membandingkannya dengan JSON Anda.

Gaya keluaran
Gaya kutip
0 (mati)
Pro

Gratis: 1 berkas, sampai 10.0 MB. Pro: hingga 50 berkas dan satu ZIP.

Cara mengonversi JSON ke YAML

  1. 1

    Tempel atau unggah JSON

    Tempel JSON ke editor, atau lepaskan berkas .json, .ndjson, atau .jsonl ke halaman ini. Tidak ada yang diunggah — berkas dibaca di perangkat Anda.

  2. 2

    Pilih parser tujuan

    Portabel adalah bawaan dan memberi tanda kutip pada setiap nilai yang akan dibaca sebagai tipe lain oleh parser YAML 1.1 atau parser yang mengenali stempel waktu. Pilih YAML 1.2 untuk kutip seminimal mungkin, atau kutip semua bila pembacanya tidak diketahui.

  3. 3

    Atur tata letak

    Pilih indentasi, cara null ditulis, dan apakah dokumen dimulai dengan ---. Pratinjau diperbarui setiap kali Anda mengubahnya.

  4. 4

    Konversi dan periksa hasilnya

    Tekan Konversi ke YAML. Hasilnya dibaca ulang dengan parser independen dan dibandingkan dengan JSON asli Anda, dan lencananya menyatakan apakah setiap nilai bertahan.

  5. 5

    Unduh atau salin

    Unduh berkas .yaml atau salin ke papan klip. Untuk arah sebaliknya gunakan alat YAML ke JSON.

Apa yang ditawarkan alat JSON ke YAML ini

Konverter gratis ini mengubah JSON menjadi YAML di perangkat Anda. Tempel atau unggah JSON, pilih parser yang menjadi tujuan YAML Anda, dan konverter akan memberi tanda kutip tepat pada nilai yang jika tidak akan berubah tipe di tengah jalan. Setiap hasil dibaca ulang dengan parser independen dan dibandingkan dengan JSON asli Anda sebelum ditawarkan kepada Anda. JSON yang tidak valid dilokalisasi sampai ke karakternya, lengkap dengan penunjuk dan jalan keluar.

  • Tanda kutip untuk parser tertentu — Pilih YAML 1.2, portabel, atau kutip semua. Portabel adalah bawaan dan aman pada PyYAML, js-yaml, Psych milik Ruby, dan Go.
  • Verifikasi bolak-balik — YAML dibaca ulang dengan parser independen dan dibandingkan nilai demi nilai dengan JSON Anda. Lencananya menyebutkan jalur pertama yang berbeda jika ada.
  • String multibaris yang mudah dibaca — String yang mengandung baris baru ditulis sebagai literal blok, sehingga skrip, sertifikat, dan SQL tetap terbaca alih-alih runtuh menjadi escape.
  • NDJSON masuk, YAML banyak dokumen keluar — Satu nilai JSON per baris menjadi satu dokumen YAML per baris masukan, dipisahkan oleh ---. Baris kosong dilewati.
  • Galat dilokalisasi di perangkat Anda — Pesan, baris, kolom, penunjuk tepat di bawah karakternya, dan apa yang seharusnya ada di sana — sama di semua peramban alih-alih apa pun yang dilaporkan parser peramban.
  • Tidak ada yang meninggalkan perangkat Anda — Berkas dibaca, diurai, dikonversi, dan diverifikasi secara lokal. Tidak ada langkah unggah, jadi tidak ada yang perlu ditolak.

Parser mana yang akan membaca YAML Anda?

Inilah pengaturan yang menentukan benar tidaknya konversi, dan inilah alasan keberadaan alat ini. YAML tidak punya satu cara baku untuk membaca kata tanpa tanda kutip: berkas yang sama berarti hal berbeda bagi parser berbeda, dan konverter yang memakai kutip seminimal mungkin sedang bertaruh pada parser mana yang akan Anda pakai.

  • Portabel (bawaan) — Memberi tanda kutip pada gabungan segala sesuatu yang akan diubah tipenya oleh parser inti YAML 1.2, parser YAML 1.1, dan parser yang mengenali stempel waktu. Sedikit lebih banyak kutip; nilai yang sama di mana pun.
  • YAML 1.2 — Kutip seminimal mungkin, sesuai skema inti YAML 1.2. Benar jika — dan hanya jika — yang membaca berkasnya adalah parser 1.2 tanpa pengenalan stempel waktu. Alat ini tetap menghitung dan melaporkan nilai yang akan diubah pembaca 1.1.
  • Kutip semua — Setiap string diberi tanda kutip. Bertele-tele, tidak ambigu, dan jawaban yang tepat ketika Anda tidak tahu apa yang akan membaca berkas itu.
  • Siapa yang membaca YAML 1.1 — PyYAML dan karenanya Ansible dan SaltStack, Psych milik Ruby, serta banyak perkakas yang dibangun di atasnya. Ini bukan sudut warisan masa lalu; ini sebagian besar dunia infrastruktur.

Nilai yang diam-diam diubah YAML

Ini bukan string eksotis. Inilah yang benar-benar orang simpan di berkas konfigurasi, dan setiap satunya kembali sebagai tipe berbeda dari parser yang tidak diberi tahu sebaliknya. Mode portabel memberi tanda kutip pada semuanya; mode YAML 1.2 hanya pada baris pertama dan memberi tahu Anda berapa sisanya yang dibiarkan tanpa kutip.

  • true, false, null, 12, 1.5, 0x1F — Diubah tipenya oleh setiap parser, termasuk YAML 1.2. Selalu diberi tanda kutip, di semua mode.
  • yes, no, on, off, y, n — String pada YAML 1.2. Boolean pada YAML 1.1 — jadi nilai konfigurasi «no» menjadi false di Ansible.
  • 0755, 0644 — Sebuah izin berkas, dan bagi parser YAML 1.1 sebuah bilangan oktal berawalan nol: 0755 menjadi 493.
  • 1:30, 12:30:45 — Bagi Anda sebuah durasi atau jam; bagi parser YAML 1.1 bilangan basis 60, yang membaca 1:30 sebagai 90.
  • 2024-01-01 — Objek tanggal bagi apa pun yang mengenali stempel waktu, termasuk skema bawaan js-yaml, PyYAML, dan yaml.v3 milik Go.
  • 1_000, 0b1010 — String menurut bunyi spesifikasi 1.2, bilangan bulat bagi js-yaml. Tetap diberi tanda kutip, karena yang menentukan adalah pembacanya, bukan spesifikasinya.

Bagaimana tipe JSON menjadi YAML

Pemetaannya langsung dan struktur dokumen Anda dipertahankan persis. Tidak ada yang diurutkan ulang, tidak ada yang hilang, dan tidak ada kunci yang diganti nama.

  • Objek — Blok kunci-nilai berindentasi. Urutan kunci dipertahankan kecuali Anda meminta kunci terurut.
  • Larik — Daftar berawalan tanda hubung. Daftar di dalam pemetaan bisa berindentasi atau sejajar dengan kolom kuncinya.
  • Objek dan larik kosong — Ditulis {} dan [] alih-alih dibiarkan kosong, karena nilai kosong akan dibaca kembali sebagai null dan diam-diam mengubah bentuknya.
  • null — Ditulis null secara bawaan, atau sebagai tilde, atau kosong. Bentuk kosong hanya dipakai untuk nilai pemetaan — lihat catatan tata letak di bawah.
  • String dengan baris baru — Literal blok, dengan indikator pemotongan dipilih dari baris baru di akhir agar string kembali persis sama.
  • Kunci — Diberi tanda kutip dengan aturan yang sama seperti nilai. Kunci «n» atau «yes» diberi tanda kutip, karena tanpa kutip ia menjadi kunci boolean di pembaca YAML 1.1.

String multibaris dan nilai panjang

Skrip shell di dalam ConfigMap, sertifikat PEM, sebuah pernyataan SQL — inilah nilai yang paling ingin dijaga tetap terbaca, dan justru yang dirusak konverter naif menjadi satu baris penuh escape.

  • Literal blok — String multibaris ditulis setelah | agar baris tetap menjadi baris. Indikator pemotongan dipilih dari baris baru di akhir, sehingga tidak ada yang bertambah atau hilang.
  • Ketika blok tidak bisa dipakai — String yang baris pertamanya kosong atau berindentasi, atau yang memuat carriage return atau karakter kendali, akan diberi tanda kutip. Kasus seperti itu butuh indikator indentasi eksplisit, dan salah menuliskannya adalah kerusakan data yang senyap.
  • Memenggal baris panjang (Pro) — Kolom pemenggalan melipat nilai panjang dengan baris baru ber-escape, satu-satunya bentuk pemenggalan di YAML yang benar-benar dapat dibalik. Skalar polos dan blok yang dilipat tidak demikian, jadi nilai yang perlu dipenggal diberi tanda kutip lebih dulu.
  • Tanpa pelipatan tak sengaja — Dengan pemenggalan mati — bawaannya — string panjang tetap dalam satu baris, jadi tidak ada yang ditata ulang saat keluar.

NDJSON dan YAML banyak dokumen

NDJSON — disebut juga JSON Lines — adalah satu nilai JSON per baris, dan itulah yang dihasilkan pipeline log, ekspor basis data, dan jq -c. Sebagai berkas utuh ia bukan JSON yang valid, sehingga sebagian besar konverter menolaknya.

  • Dideteksi dengan dua cara — Dari ekstensi .ndjson atau .jsonl, dan dari isinya: berkas yang bukan satu dokumen JSON valid tetapi setiap baris tak kosongnya dapat diurai sendiri-sendiri.
  • Satu dokumen per catatan — Setiap nilai menjadi dokumen YAML tersendiri, dipisahkan oleh ---, yang merupakan cara setiap parser membaca aliran YAML.
  • Larik satu baris bukan NDJSON — [1,2] adalah dokumen JSON yang valid, jadi ia dikonversi sebagai satu dokumen. Justru karena itulah pembacaan dokumen tunggal dicoba lebih dulu.
  • Satu baris rusak menghentikan konversi — Nomor barisnya dilaporkan, alih-alih menghasilkan aliran setengah jadi dengan catatan yang hilang diam-diam.

Opsi tata letak dan format

Tidak satu pun mengubah makna dokumen. Semuanya mengubah cara dokumen itu terbaca, dan pratinjau diperbarui saat Anda menggerakkannya.

  • Indentasi — 1 sampai 8 spasi per tingkat. Dua adalah bawaan dan yang diharapkan sebagian besar perkakas YAML.
  • Gaya null — null, tilde, atau kosong. Bentuk kosong hanya dipakai untuk nilai pemetaan: entri daftar kosong di akhir daftar bersarang dibaca berbeda oleh parser berbeda, jadi di sana ditulis sebagai tilde.
  • Penanda dokumen — Mulai berkas dengan ---. Di antara dokumen dalam satu aliran, penanda selalu dikeluarkan, apa pun setelan ini.
  • Urutkan kunci (Pro) — Kunci menurut abjad, agar diff tidak bergeser ketika penghasilnya mengubah urutan keluarannya.
  • Gaya kutip (Pro) — Kutip tunggal atau ganda di tempat yang memerlukannya. Kutip tunggal beralih ke ganda untuk string apa pun yang tidak dapat diwakilinya.
  • Indentasi daftar (Pro) — Beri indentasi pada daftar di bawah kuncinya, atau sejajarkan dengan kolom kuncinya — gaya khas manifes Kubernetes, dan empat kolom lebih hemat di setiap daftar.
  • Gaya multibaris (Pro) — Literal blok yang mudah dibaca, atau satu baris berkutip ganda dengan escape.

Verifikasi bolak-balik

Setiap konverter lain di kategori ini menyerahkan YAML kepada Anda dan membiarkan Anda mengetahui belakangan apakah maknanya masih sama dengan JSON Anda. Yang ini memeriksanya sebelum Anda mengunduh apa pun.

  • Pembaca yang independen — Hasilnya diurai oleh implementasi yang berbeda dari yang menulisnya. Penulis yang diperiksa pembacanya sendiri tidak membuktikan apa pun — keduanya akan berbagi salah paham yang sama.
  • Dibandingkan nilai demi nilai — Terhadap JSON asli Anda, bukan terhadap salinan yang diserialisasi ulang. Tipe juga dibandingkan, sehingga string yang kembali sebagai tanggal dinyatakan gagal.
  • Perbedaan pertama disebutkan — Berdasarkan jalur — /servers/3/started — lengkap dengan kedua tipe dan kedua nilainya, alih-alih sekadar «verifikasi gagal» pada berkas 40.000 baris.
  • Dibaca dengan parser yang Anda pilih — Verifikasi memakai skema sesuai target Anda, sehingga terverifikasi selalu berarti terverifikasi untuk pembaca yang Anda sebutkan.
  • Bisa dimatikan — Ia menelan satu pembacaan tambahan atas dokumen. Pada berkas besar yang bentuknya sudah dikenal Anda mungkin tidak menginginkannya; setelan ini milik Anda, dan hasilnya ditandai usang jika Anda mengubahnya.

Ditenagai algoritma pemrosesan yang dioptimalkan.

Mengapa mengonversi JSON ke YAML?

YAML adalah format konfigurasi dunia infrastruktur, dan JSON adalah yang dihasilkan hampir semua hal. Mengonversi di antara keduanya adalah cara data dari sebuah API, basis data, atau aplikasi berakhir di manifes Kubernetes, berkas Compose, alur kerja GitHub Actions, atau playbook Ansible.

  • Alur konfigurasi — Gunakan kembali data berbentuk JSON di Kubernetes, Docker Compose, GitHub Actions, Ansible, dan apa pun yang membaca YAML.
  • Keterbacaan — YAML membuang kurung kurawal dan tanda kutip, sehingga dokumen bersarang lebih mudah dibaca dan ditinjau dalam pull request.
  • Komentar — YAML mendukung komentar sedangkan JSON tidak, sehingga mengonversi sering menjadi langkah pertama mengubah data hasil generasi menjadi sesuatu yang akan dirawat manusia.
  • Di sini kebenaran lebih penting — Berkas konfigurasi dieksekusi. String versi yang menjadi angka, atau izin yang menjadi oktal, tidak gagal dengan berisik — ia tetap ter-deploy.
  • Privasi — Tidak ada yang diunggah, jadi respons API berisi kredensial atau data pelanggan diproses di perangkat Anda, bukan di server kami.

Pertanyaan yang sering diajukan

Bagaimana konverter JSON ke YAML ini bekerja?

Tempel JSON atau lepaskan berkas .json, pilih parser yang Anda tuju, lalu tekan Konversi ke YAML. JSON Anda diurai dan ditulis ulang sebagai YAML di perangkat Anda — objek menjadi blok kunci-nilai, larik menjadi daftar berawalan tanda hubung, dan string multibaris menjadi literal blok yang mudah dibaca. Setelah itu Anda dapat menyalin hasilnya atau mengunduhnya sebagai berkas .yaml.

Apakah data JSON saya aman?

Ya. Berkas dibaca dan dikonversi di perangkat Anda; tidak ada yang dikirim, disimpan, atau dicatat. Setelah halaman dimuat Anda bisa bekerja luring, sehingga alat ini aman untuk konfigurasi pribadi, rahasia, atau data milik perusahaan. Tidak ada langkah unggah yang perlu ditolak, karena memang tidak ada unggahan.

Mengapa konverter memberi tanda kutip pada 2024-01-01 dan yes?

Karena tanpa itu parser YAML tidak akan mengembalikan sebuah string. Pada YAML 1.1 — yang masih dipakai PyYAML, Ansible, dan Psych milik Ruby — yes, no, on, dan off adalah boolean, 0755 adalah angka 493, dan 1:30 adalah angka 90. Pada parser mana pun yang mengenali stempel waktu, termasuk skema bawaan js-yaml, 2024-01-01 adalah objek tanggal. Target Portabel memberi tanda kutip tepat pada nilai-nilai itu dan tidak pada yang lain, sehingga yang keluar sama dengan yang masuk.

Apa itu verifikasi bolak-balik?

Setelah YAML ditulis, ia dibaca ulang dengan parser independen dan dibandingkan nilai demi nilai dengan JSON asli Anda. Lencananya menyatakan terverifikasi bila semua nilai cocok, dan menyebutkan jalur pertama yang berbeda bila tidak — misalnya /servers/3/started, string melawan tanggal. Tidak ada konverter JSON ke YAML online lain yang memeriksa keluarannya sendiri.

Bagaimana tipe data JSON dipetakan ke YAML?

String, angka, boolean, dan null dibawa langsung. Objek menjadi blok kunci-nilai berindentasi dan larik menjadi daftar berawalan tanda hubung, sehingga struktur JSON Anda dipertahankan persis. Objek kosong ditulis {} dan larik kosong [], karena nilai kosong akan dibaca kembali sebagai null. String yang mengandung baris baru menjadi literal blok, yang tetap mudah dibaca alih-alih dipadatkan menjadi satu baris berisi escape.

Bisakah saya mengonversi NDJSON atau JSON Lines?

Bisa. Berkas .ndjson atau .jsonl — satu nilai JSON per baris, yang dihasilkan sebagian besar pipeline log dan ekspor basis data — menjadi aliran YAML banyak dokumen, dipisahkan oleh ---. Baris kosong dilewati. Berkas yang tidak bernama .ndjson juga diperiksa, sehingga berkas JSON Lines bernama .json tetap terkonversi dengan benar.

Bisakah saya mengubah indentasi, dan bagaimana jika JSON saya tidak valid?

Indentasi dapat diatur dari 1 sampai 8 spasi dan hanya memengaruhi keterbacaan — datanya tidak berubah. Jika JSON tidak dapat diurai, alat ini menampilkan pesannya, baris dan kolomnya, penunjuk tepat di bawah karakter yang bermasalah, dan apa yang seharusnya ada di sana, lengkap dengan tautan ke Pemformat dan Validator JSON. Posisi itu dihitung di perangkat Anda, sehingga sama di semua peramban alih-alih bergantung pada apa yang dilaporkan parser peramban Anda.

Apakah gratis, dan apakah bekerja di ponsel dan luring?

Ya. Berkas sampai 10 MB dikonversi gratis, dan setiap pengaturan yang menentukan benar tidaknya keluaran — parser tujuan, indentasi, gaya null, penanda dokumen, dan verifikasi — semuanya gratis. Alat ini berjalan di peramban modern mana pun termasuk ponsel dan tablet, dan tetap bekerja luring setelah dimuat. Pro menambahkan gaya keluaran, berkas lebih besar, dan mengonversi banyak berkas menjadi satu ZIP.

4.8dari 5

dari 78 penilaian

Beri nilai alat ini

Ketuk bintang — hanya sebentar