YAML dan JSON: pertahankan data, bukan tampilan berkas

Konfigurasi YAML mungkin perlu menjadi JSON agar dapat dipertukarkan dengan layanan. Kemiripan struktur tidak berarti setiap bagian sumber memiliki padanan.

Tipe lebih penting daripada tampilan

String "003" bukan angka 3, dan "false" dalam tanda kutip bukan boolean false. Simpan pengenal sebagai teks jika nol awal atau penulisan persisnya penting.

Konverter menangani YAML 1.2 Core yang sesuai dengan JSON. Jangan otomatis membawa asumsi sistem lama: kata tertentu bisa ditafsirkan berbeda oleh versi lain.

Referensi: YAML 1.2.2 — Core types and comments as presentation

Komentar ditujukan kepada pemelihara

Komentar YAML membantu pemeliharaan, tetapi bukan bagian data. Komentar tidak masuk JSON di sini dan tidak muncul lagi saat dikonversi balik.

Simpan sumber berkomentar dan perlakukan hasil sebagai ekspor data. Warna sintaks serta urutan baris yang familier tidak membuktikan tipe masih benar.

Referensi: YAML 1.2.2 — Core types and comments as presentation

Penolakan mencegah kehilangan diam-diam

Alur menerima satu dokumen dengan kunci teks. Kunci duplikat, alias, anchor, tag khusus, dan fitur di luar pemetaan yang didukung ditolak.

Angka di luar rentang representasi ditolak, bukan dibulatkan diam-diam. Gunakan teks untuk pengenal panjang. Konversi tidak menjalankan konfigurasi atau memastikan layanan penerima menerimanya.

Contoh: tiga nilai dengan tipe berbeda

code: "003", enabled: false, dan retries: 3 menghasilkan string "003", boolean false, serta angka 3. Nol bertahan karena code adalah teks, bukan karena alat menebak itu pengenal.

Menambahkan # staging sebelumnya tidak membuat properti JSON. Saat kembali ke YAML, tanda kutip dan format boleh berubah sementara nilai dan tipe setara; komentar asli tidak kembali.

Referensi