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 menyokong undefined. Gunakan null sebagai ganti.
  • Elakkan NaN dan Infinity. Nilai-nilai ini akan bertukar menjadi null semasa 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 \n untuk 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(). Gunakan JSON.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