ഓരോ ഡെവലപ്പറും വരുത്തുന്ന 25 JSON തെറ്റുകൾ
വെബ് കമ്മ്യൂണിക്കേഷന്റെ നട്ടെല്ലാണ് JSON. ഇത് ഭാരം കുറഞ്ഞതും വായിക്കാൻ എളുപ്പവുമാണ്. എന്നിരുന്നാലും, ഇതിന്റെ നിയമങ്ങൾ കർശനമാണ്. ചെറിയ തെറ്റുകൾ പോലും നിങ്ങളുടെ കോഡ് തകരാറിലാക്കും.
മികച്ച ഡാറ്റാ സ്ട്രക്ചറുകൾ എഴുതുന്നതിനായി ഈ സാധാരണ തെറ്റുകൾ ഒഴിവാക്കുക.
സിന്റാക്സ് തെറ്റുകൾ (Syntax Errors)
- ഡബിൾ കോട്ട്സ് (double quotes) മാത്രം ഉപയോഗിക്കുക. സിംഗിൾ കോട്ട്സ് JavaScript-ൽ പ്രവർത്തിക്കുമെങ്കിലും JSON-ൽ പ്രവർത്തിക്കില്ല.
- അവസാനത്തെ കോമകൾ (trailing commas) ഒഴിവാക്കുക. അവസാന ഐറ്റത്തിന് ശേഷമുള്ള ഒരു കോമ കോഡ് ക്രാഷ് ആകാൻ കാരണമാകും.
- വിട്ടുപോയ കോമകൾ ചേർക്കുക. ഓരോ കീ-വാല്യൂ ജോഡികൾക്കിടയിലും ഒരു കോമ ആവശ്യമാണ്.
- എല്ലാ കീകൾക്കും കോട്ട്സ് നൽകുക. ഓരോ കീയ്ക്കും ചുറ്റും ഡബിൾ കോട്ട്സ് ഉണ്ടായിരിക്കണം.
- ബ്രാക്കറ്റുകൾ ശരിയായി ഉപയോഗിക്കുക. സ്ക്വയർ ബ്രാക്കറ്റുകൾ (square brackets) ഉപയോഗിക്കേണ്ട ഇടങ്ങളിൽ കർലി ബ്രാക്കറ്റുകൾ (curly braces) ഉപയോഗിക്കരുത്.
ഡാറ്റാ ടൈപ്പ് തെറ്റുകൾ
- undefined വാല്യൂകൾ കൈകാര്യം ചെയ്യുക. JSON 'undefined' സപ്പോർട്ട് ചെയ്യുന്നില്ല. പകരം 'null' ഉപയോഗിക്കുക.
- NaN, Infinity എന്നിവ ഒഴിവാക്കുക. സീരിയലൈസേഷൻ സമയത്ത് ഈ വാല്യൂകൾ null ആയി മാറും.
- ഡേറ്റ് ഫോർമാറ്റുകൾ ശ്രദ്ധിക്കുക. JSON ഡേറ്റുകളെ സ്ട്രിംഗുകളായിട്ടാണ് കണക്കാക്കുന്നത്. അവയെ വീണ്ടും Date ഒബ്ജക്റ്റുകളായി പാഴ്സ് (parse) ചെയ്യേണ്ടതുണ്ട്.
- ബേസ്-10 നമ്പറുകൾ ഉപയോഗിക്കുക. ഹെക്സ് (hex) അല്ലെങ്കിൽ ഒക്റ്റൽ (octal) ഫോർമാറ്റുകൾ ഉപയോഗിക്കരുത്.
- ഫംഗ്ഷനുകൾ സ്റ്റോർ ചെയ്യരുത്. JSON സ്റ്റാറ്റിക് ഡാറ്റയ്ക്ക് മാത്രമുള്ളതാണ്.
- കമന്റുകൾ ഒഴിവാക്കുക. JSON-ൽ // അല്ലെങ്കിൽ /* */ കമന്റുകൾ അനുവദനീയമല്ല.
- ഡബിൾ കോട്ട്സ് എസ്കേപ്പ് (escape) ചെയ്യുക. ഒരു സ്ട്രിംഗിനുള്ളിൽ കോട്ട്സ് ഉൾപ്പെടുത്താൻ ഒരു ബാക്ക്സ്ലാഷ് (backslash) ഉപയോഗിക്കുക.
- പുതിയ വരികൾക്കായി \n ഉപയോഗിക്കുക. ഒരു സ്ട്രിംഗ് വാല്യൂവിനുള്ളിൽ നിങ്ങൾക്ക് എന്റർ (enter) അമർത്താൻ കഴിയില്ല.
- ബാക്ക്സ്ലാഷുകൾ എസ്കേപ്പ് ചെയ്യുക. പാതകൾക്കോ (paths) റെഗുലർ എക്സ്പ്രഷൻ (regex) പാറ്റേണുകൾക്കോ \ ഉപയോഗിക്കുക.
എൻവയോൺമെന്റ്, ലോജിക് തെറ്റുകൾ
- ഇൻപുട്ട് പരിശോധിക്കുക. JSON.parse() ലേക്ക് ഒരു ഒബ്ജക്റ്റ് പാസ്സ് ചെയ്യരുത്.
- കേസിംഗ് (casing) ശ്രദ്ധിക്കുക. "userId", "userid" എന്നിവ വ്യത്യസ്ത കീകൾ ആണ്.
- ക്രമത്തെ (order) ആശ്രയിക്കരുത്. കീകുകളുടെ ക്രമം JSON ഉറപ്പുനൽകുന്നില്ല.
- ഒരിക്കലും eval() ഉപയോഗിക്കരുത്. സുരക്ഷാ പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ JSON.parse() ഉപയോഗിക്കുക.
- വലിയ നമ്പറുകൾ സംരക്ഷിക്കുക. പ്രിസിഷൻ ലോസ് (precision loss) ഒഴിവാക്കാൻ 64-ബിറ്റ് ഐഡികൾ സ്ട്രിംഗുകളായി പാസ്സ് ചെയ്യുക.
- try...catch ബ്ലോക്കുകൾ ഉപയോഗിക്കുക. തെറ്റായ JSON ഉപയോഗിക്കുമ്പോൾ എററുകൾ ക്യാച്ച് ചെയ്തില്ലെങ്കിൽ നിങ്ങളുടെ ആപ്പ് ക്രാഷ് ആകാൻ സാധ്യതയുണ്ട്.
- സർക്കുലർ റഫറൻസുകൾ (circular references) പരിഹരിക്കുക. സ്വയം റഫർ ചെയ്യുന്ന ഒരു ഒബ്ജക്റ്റിനെ നിങ്ങൾക്ക് സ്ട്രിംഗിഫൈ (stringify) ചെയ്യാൻ കഴിയില്ല.
- വ്യത്യാസം മനസ്സിലാക്കുക. ഒരു സാധാരണ JavaScript ഒബ്ജക്റ്റിനേക്കാൾ കൂടുതൽ നിയന്ത്രണങ്ങൾ JSON-നുണ്ട്.
- ശൂന്യമായ സ്ട്രിംഗുകൾ ഒഴിവാക്കുക. "" എന്നതിന് പകരം {} അല്ലെങ്കിൽ [] ഉപയോഗിക്കുക.
സുരക്ഷിതമായിരിക്കാൻ:
- നിങ്ങളുടെ സിന്റാക്സ് പരിശോധിക്കാൻ ഒരു വാലിഡേറ്റർ ഉപയോഗിക്കുക.
- ഫയലുകൾ ഓട്ടോ-ഫോർമാറ്റ് ചെയ്യാൻ നിങ്ങളുടെ എഡിറ്ററിൽ Prettier ഉപയോഗിക്കുക.
- പാഴ്സിംഗ് ലോജിക് എപ്പോഴും ഒരു try...catch ബ്ലോക്കിനുള്ളിൽ ഉൾപ്പെടുത്തുക.
ഉറവിടം: https://dev.to/jsdevspace/25-json-mistakes-every-developer-makes-36e6
