25 Kesilapan JSON yang Dilakukan oleh Setiap Pembangun
JSON adalah tulang belakang komunikasi web. Ia ringan dan mudah dibaca. Walau bagaimanapun, peraturannya adalah ketat. Ralat kecil boleh merosakkan kod anda.
Elakkan kesilapan biasa ini untuk menulis struktur data yang lebih baik.
Ralat Sintaks
- Gunakan pembuka kata berganda sahaja. Pembuka kata tunggal berfungsi dalam JavaScript tetapi gagal dalam JSON.
- Buang koma di hujung. Koma selepas item terakhir akan menyebabkan kegagalan (crash).
- Tambah koma yang hilang. Setiap pasangan kunci-nilai memerlukan koma di antaranya.
- Letakkan pembuka kata pada semua kunci. Setiap kunci mesti mempunyai pembuka kata berganda di sekelilingnya.
- Padankan kurungan anda. Jangan gunakan kurungan beralun (curly braces) di tempat yang sepatutnya menggunakan kurungan siku (square brackets).
Kesilapan Jenis Data
- Kendalikan nilai
undefined. JSON tidak menyokongundefined. Gunakannullsebagai ganti. - Elakkan
NaNdanInfinity. Nilai-nilai ini akan bertukar menjadinullsemasa penserialan (serialization). - Ingat format Tarikh. JSON menganggap tarikh sebagai rentetan (string). Anda mesti menukarnya semula kepada objek
Date. - Gunakan nombor asas-10. Jangan gunakan format heksadesimal (hex) atau oktal.
- Jangan simpan fungsi. JSON adalah untuk data statik sahaja.
- Elakkan komen. JSON tidak membenarkan komen
//atau/* */. - Gunakan escape untuk pembuka kata berganda. Gunakan tanda backslash untuk memasukkan pembuka kata di dalam satu rentetan.
- Gunakan
\nuntuk baris baharu. Anda tidak boleh menekan enter di dalam nilai rentetan. - Gunakan escape untuk backslash. Gunakan
\\untuk laluan (path) atau corak regex.
Ralat Persekitaran dan Logik
- Semak input anda. Jangan hantar objek ke
JSON.parse(). - Perhatikan penggunaan huruf besar/kecil. "userId" dan "userid" adalah kunci yang berbeza.
- Jangan bergantung pada urutan. JSON tidak menjamin urutan kunci.
- Jangan sesekali gunakan
eval(). GunakanJSON.parse()untuk mengelakkan risiko keselamatan. - Lindungi nombor besar. Hantar ID 64-bit sebagai rentetan untuk mengelakkan kehilangan ketepatan (precision loss).
- Gunakan blok
try...catch. JSON yang tidak sah akan merosakkan aplikasi anda jika anda tidak menangkap ralat tersebut. - Baiki rujukan berpusing (circular references). Anda tidak boleh menukar objek kepada rentetan (stringify) jika ia merujuk kembali kepada dirinya sendiri.
- Ketahui perbezaannya. JSON adalah lebih ketat berbanding objek JavaScript standard.
- Elakkan rentetan kosong. Gunakan
{}atau[]sebagai ganti"".
Cara untuk kekal selamat:
- Gunakan validator untuk menyemak sintaks anda.
- Gunakan Prettier dalam editor anda untuk memformat fail secara automatik.
- Sentiasa bungkus logik parsing dalam blok
try...catch.
Sumber: https://dev.to/jsdevspace/25-json-mistakes-every-developer-makes-36e6
