ਹਰ ਡਿਵੈਲਪਰ ਦੁਆਰਾ ਕੀਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ 25 JSON ਗਲਤੀਆਂ

JSON ਵੈੱਬ ਸੰਚਾਰ ਦੀ ਰੀੜ੍ਹ ਦੀ ਹੱਡੀ ਹੈ। ਇਹ ਹਲਕਾ (lightweight) ਹੈ ਅਤੇ ਪੜ੍ਹਨ ਵਿੱਚ ਆਸਾਨ ਹੈ। ਹਾਲਾਂਕਿ, ਇਸਦੇ ਨਿਯਮ ਸਖ਼ਤ ਹਨ। ਛੋਟੀਆਂ ਗਲਤੀਆਂ ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਖਰਾਬ ਕਰ ਸਕਦੀਆਂ ਹਨ।

ਬਿਹਤਰ ਡੇਟਾ ਸਟ੍ਰਕਚਰ ਲਿਖਣ ਲਈ ਇਹਨਾਂ ਆਮ ਗਲਤੀਆਂ ਤੋਂ ਬਚੋ।

ਸਿੰਟੈਕਸ ਗਲਤੀਆਂ (Syntax Errors)

  • ਸਿਰਫ਼ ਡਬਲ ਕੋਟਸ (double quotes) ਦੀ ਵਰਤੋਂ ਕਰੋ। JavaScript ਵਿੱਚ ਸਿੰਗਲ ਕੋਟਸ ਕੰਮ ਕਰਦੇ ਹਨ ਪਰ JSON ਵਿੱਚ ਫੇਲ ਹੋ ਜਾਂਦੇ ਹਨ।
  • ਅੰਤ ਵਿੱਚ ਲੱਗਣ ਵਾਲੇ ਕਾਮੇ (trailing commas) ਹਟਾਓ। ਆਖਰੀ ਆਈਟਮ ਤੋਂ ਬਾਅਦ ਕਾਮਾ ਲਗਾਉਣ ਨਾਲ ਕ੍ਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ।
  • ਗੁੰਮ ਹੋਏ ਕਾਮੇ ਜੋੜੋ। ਹਰ key-value ਜੋੜੇ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਕਾਮਾ ਹੋਣਾ ਜ਼ਰੂਰੀ ਹੈ।
  • ਸਾਰੀਆਂ keys ਨੂੰ ਕੋਟ ਕਰੋ। ਹਰ key ਦੇ ਆਲੇ-ਦੁਆਲੇ ਡਬਲ ਕੋਟਸ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।
  • ਆਪਣੇ ਬ੍ਰੈਕਟਾਂ ਦਾ ਮੇਲ ਕਰੋ। ਜਿੱਥੇ square brackets ਦੀ ਲੋੜ ਹੋਵੇ ਉੱਥੇ curly braces ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ।

ਡੇਟਾ ਟਾਈਪ ਦੀਆਂ ਗਲਤੀਆਂ (Data Type Mistakes)

  • undefined ਵੈਲਯੂਜ਼ ਨੂੰ ਸੰਭਾਲੋ। JSON undefined ਨੂੰ ਸਪੋਰਟ ਨਹੀਂ ਕਰਦਾ। ਇਸਦੀ ਬਜਾਏ null ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • NaN ਅਤੇ Infinity ਤੋਂ ਬਚੋ। ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ (serialization) ਦੌਰਾਨ ਇਹ ਵੈਲਯੂਜ਼ null ਵਿੱਚ ਬਦਲ ਜਾਂਦੇ ਹਨ।
  • ਡੇਟ (Date) ਫਾਰਮੈਟ ਯਾਦ ਰੱਖੋ। JSON ਡੇਟਸ ਨੂੰ ਸਟ੍ਰਿੰਗਸ ਵਜੋਂ ਮੰਨਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਉਹਨਾਂ ਨੂੰ ਵਾਪਸ Date objects ਵਿੱਚ ਪਾਰਸ (parse) ਕਰਨਾ ਪਵੇਗਾ।
  • base-10 ਨੰਬਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ। hex ਜਾਂ octal ਫਾਰਮੈਟ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ।
  • ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸਟੋਰ ਨਾ ਕਰੋ। JSON ਸਿਰਫ਼ ਸਟੈਟਿਕ ਡੇਟਾ ਲਈ ਹੈ।
  • ਕਮੈਂਟਸ (comments) ਤੋਂ ਬਚੋ। JSON // ਜਾਂ /* */ ਕਮੈਂਟਸ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦਾ।
  • ਡਬਲ ਕੋਟਸ ਨੂੰ ਐਸਕੇਪ (escape) ਕਰੋ। ਸਟ੍ਰਿੰਗ ਦੇ ਅੰਦਰ ਕੋਟਸ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਬੈਕਸਲੈਸ਼ (backslash) ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਨਵੀਂ ਲਾਈਨ ਲਈ \n ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਸੀਂ ਸਟ੍ਰਿੰਗ ਵੈਲਯੂ ਦੇ ਅੰਦਰ enter ਨਹੀਂ ਦਬਾ ਸਕਦੇ।
  • ਬੈਕਸਲੈਸ਼ਾਂ ਨੂੰ ਐਸਕੇਪ ਕਰੋ। ਪਾਥਾਂ (paths) ਜਾਂ regex ਪੈਟਰਨਾਂ ਲਈ \ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਐਨਵਾਇਰਨਮੈਂਟ ਅਤੇ ਲੌਜਿਕ ਗਲਤੀਆਂ (Environment and Logic Errors)

  • ਆਪਣੀ ਇਨਪੁਟ ਦੀ ਜਾਂਚ ਕਰੋ। JSON.parse() ਨੂੰ ਕੋਈ ਆਬਜੈਕਟ ਪਾਸ ਨਾ ਕਰੋ।
  • ਕੇਸਿੰਗ (casing) ਦਾ ਧਿਆਨ ਰੱਖੋ। "userId" ਅਤੇ "userid" ਵੱਖ-ਵੱਖ keys ਹਨ।
  • ਕ੍ਰਮ (order) 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ। JSON keys ਦੇ ਕ੍ਰਮ ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦਾ।
  • ਕਦੇ ਵੀ eval() ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। ਸੁਰੱਖਿਆ ਜੋਖਮਾਂ ਤੋਂ ਬਚਣ ਲਈ JSON.parse() ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਵੱਡੇ ਨੰਬਰਾਂ ਦੀ ਰੱਖਿਆ ਕਰੋ। ਪ੍ਰੀਸੀਜ਼ਨ (precision) ਦੇ ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ 64-bit IDs ਨੂੰ ਸਟ੍ਰਿੰਗਸ ਵਜੋਂ ਪਾਸ ਕਰੋ।
  • try...catch ਬਲਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਜੇਕਰ ਤੁਸੀਂ ਗਲਤੀਆਂ ਨੂੰ ਕੈਚ (catch) ਨਹੀਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਗਲਤ JSON ਤੁਹਾਡੀ ਐਪ ਨੂੰ ਕ੍ਰੈਸ਼ ਕਰ ਦੇਵੇਗਾ।
  • ਸਰਕੂਲਰ ਰੈਫਰੈਂਸਾਂ (circular references) ਨੂੰ ਠੀਕ ਕਰੋ। ਤੁਸੀਂ ਅਜਿਹੇ ਆਬਜੈਕਟ ਨੂੰ stringify ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੋ ਵਾਪਸ ਆਪਣੇ ਆਪ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੋਵੇ।
  • ਅੰਤਰ ਜਾਣੋ। JSON ਇੱਕ ਸਟੈਂਡਰਡ JavaScript ਆਬਜੈਕਟ ਨਾਲੋਂ ਵਧੇਰੇ ਰੈਸਟ੍ਰਿਕਟਿਵ (restrictive) ਹੈ।
  • ਖਾਲੀ ਸਟ੍ਰਿੰਗਸ ਤੋਂ ਬਚੋ। "" ਦੀ ਬਜਾਏ {} ਜਾਂ [] ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਸੁਰੱਖਿਅਤ ਰਹਿਣ ਲਈ:

  • ਆਪਣੇ ਸਿੰਟੈਕਸ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ ਵੈਲੀਡੇਟਰ (validator) ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਫਾਈਲਾਂ ਨੂੰ ਆਟੋ-ਫਾਰਮੈਟ ਕਰਨ ਲਈ ਆਪਣੇ ਐਡੀਟਰ ਵਿੱਚ Prettier ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਪਾਰਸਿੰਗ ਲੌਜਿਕ ਨੂੰ ਹਮੇਸ਼ਾ try...catch ਬਲਾਕ ਵਿੱਚ ਰੱਖੋ।

ਸਰੋਤ: https://dev.to/jsdevspace/25-json-mistakes-every-developer-makes-36e6