JSONC
File penyimpanan storh berupa objek JSON, dan pembacaan menerima JSONC: komentar baris, komentar blok, serta koma di akhir. Dengan begitu, file catatan aman dibuka dan diberi anotasi di editor; storh tetap dapat menguraikannya.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Pembacaan terlebih dahulu mencoba json_decode yang ketat dan hanya beralih ke penghapus JSONC jika gagal, sehingga file kanonis tidak perlu menanggung biaya penanganan komentar.
Yang ditulis storh
Penulisan menghasilkan JSON kanonis yang ringkas, satu baris, dengan baris baru di akhir:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Komentar dan pemformatan khusus dipertahankan sampai storh menulis ulang catatan tersebut. put() ke ID yang sama mengganti seluruh file dengan keluaran kanonis, jadi perlakukan komentar sebagai catatan sementara, bukan metadata persisten. Informasi persisten sebaiknya disimpan di data.
Pengodean mempertahankan unicode dan garis miring tanpa escape, serta menjaga pecahan nol pada float (1.0 tetap 1.0), sehingga decode dan encode ulang data yang sama menghasilkan byte yang identik. Manifest indeks dan file metadata internal lainnya berupa objek JSON dengan toleransi pembacaan yang sama.
Jsonc::decode_object() menolak dokumen non-objek dan input yang formatnya salah.
Jsonc::encode_object() dan Jsonc::encode_compact_object() menulis array sebagai dokumen objek.