- JSON5 adalah format yang memperluas format berkas JSON agar lebih mudah ditulis dan dipelihara langsung oleh manusia
- Tidak digunakan untuk komunikasi antarmesin
- Dimulai pada 2012 dan per 2022 diunduh lebih dari 65 juta kali per minggu, serta termasuk dalam 0,1% paket yang paling banyak dijadikan dependensi di npm
- Diadopsi oleh proyek-proyek utama seperti Chromium, Next.js, Babel, Retool, dan WebStorm
- Didukung secara bawaan di platform Apple seperti macOS dan iOS
- Fitur JSON5
- Merupakan superset dari JSON, dan mencakup sebagian sintaks ECMAScript 5.1.
- Berkas JSON5 selalu merupakan berkas ES5 yang valid.
- Fitur ECMAScript 5.1 yang diperluas
- Objek
- Kunci objek dapat berupa
IdentifierName ECMAScript 5.1.
- Mengizinkan satu koma penutup di objek.
- Array
- Mengizinkan satu koma penutup di array.
- String
- String dapat dibungkus dengan tanda kutip tunggal.
- Dapat ditulis melintasi beberapa baris dengan meng-escape karakter baris baru.
- Dapat menyertakan escape karakter.
- Angka
- Dapat dinyatakan dalam heksadesimal.
- Dapat memiliki titik desimal di depan atau di belakang.
- Dapat mencakup IEEE 754 positive infinity, negative infinity, dan NaN.
- Dapat diawali dengan tanda plus eksplisit.
- Komentar
- Mengizinkan komentar satu baris dan banyak baris.
- Spasi putih
- Mengizinkan karakter spasi putih tambahan.
- API
JSON5.parse(): Mem-parsing string JSON5 untuk menghasilkan nilai atau objek JavaScript.
JSON5.stringify(): Mengubah nilai JavaScript menjadi string JSON5.
- CLI
- Menyediakan CLI untuk mengonversi JSON5 ke JSON atau memvalidasi sintaks dokumen JSON5.
- Kompatibilitas ECMAScript
- JSON5 dirancang agar sepenuhnya kompatibel dengan ES5, tetapi karakter U+2028 dan U+2029 tidak diizinkan di ES5.
- Karakter ini diizinkan di ES2019 sehingga JSON dan JSON5 menjadi sepenuhnya kompatibel dengan ES2019.
- Lisensi
- Disediakan di bawah lisensi MIT.
2 komentar
Hal yang saya pelajari saat membuat JSON5: abaikan para pembencinya
Komentar Hacker News
\Uuntuk karakter Unicode di luar BMP