Tech Help

සාමාන්‍ය JSON දෝෂ: අවසන් කොමාව, උද්ධරණ සහ Unexpected token

අවලංගු JSON නිවැරදි කරන්න: අවසන් කොමාව, තනි උද්ධරණ, උද්ධරණ නැති යතුරු සහ Unexpected token. JSON.parse අසාර්ථක වන්නේ ඇයි සහ JSON පරීක්ෂා කරන්නේ කෙසේද.

කෙටි පිළිතුර

බොහෝ JSON දෝෂ දැඩි නීතිවලින් පැමිණේ: අවසන් කොමාව, තනි උද්ධරණ, උද්ධරණ නැති ගුණ නම්, නැති කොමාව, නොගැළපෙන වරහන්, වැරදි එස්කේප්, හෝ අදහස්.

JSON JavaScript වස්තුවක් මෙන් පෙනේ, නමුත් දැඩි ය. ගුණ නම් සහ තන්තුවලට ද්විත්ව උද්ධරණ අවශ්‍යයි.

Unexpected token දුටුවහොත්, වාර්තා කළ අකුර විග්‍රහය නැවතුණු ස්ථානය විය හැක—මුල් වැරැද්ද ආරම්භ වූ ස්ථානය නොවේ සැමවිටම.

ඔබේ JSON අවලංගු ලෙස සලකුණු කර ඇත. සාමාන්‍යයෙන් කුඩා ව්‍යාකරණ ගැටලුවකි, බිඳුණු ගොනු ආකෘතියක් නොවේ. පහත දෝෂ හතක් බොහෝ Unexpected token ඇති කරයි.

JSON මෙතරම් පහසුවෙන් බිඳෙන්නේ ඇයි?

JSON දැඩි ව්‍යාකරණ සහිත දත්ත ආකෘතියකි. JavaScript වස්තු ලිටරල් සමානව පෙනී තවමත් අවලංගු JSON විය හැක. සම්මත JSON හි ගුණ නම් සහ තන්තුවලට ද්විත්ව උද්ධරණ අවශ්‍යයි, අවසන් කොමාව අවසර නැත, අදහස් ආකෘතියේ කොටසක් නොවේ.

1. අවසන් කොමා

අවසන් ගුණයට පසු අමතර කොමාව ගැටලුවයි. සම්මත JSON එයට ඉඩ නොදේ.

අවලංගු

{
  "name": "Alex",
  "age": 30,
}

වලංගු

{
  "name": "Alex",
  "age": 30
}

එම නීතියම අරේ සඳහායි. අවසන් අයිතමයට පසු කොමාව ඉවත් කරන්න.

අවලංගු

[
  "red",
  "green",
]

වලංගු

[
  "red",
  "green"
]

2. ද්විත්ව වෙනුවට තනි උද්ධරණ

JavaScript බොහෝ විට තනි උද්ධරණ පිළිගනී. JSON පිළිනොගනී. ගුණ නම් සහ තන්තු අගයන් ද්විත්ව උද්ධරණ භාවිතා කළ යුතුය.

අවලංගු

{
  'name': 'Alex'
}

වලංගු

{
  "name": "Alex"
}

3. උද්ධරණ නැති ගුණ නම්

JavaScript හි සමහර විට name උද්ධරණ නැතිව ලිවිය හැක. JSON හි සෑම ගුණ නමක්ම ද්විත්ව-උද්ධරණ තන්තුවක් විය යුතුය.

අවලංගු

{
  name: "Alex",
  age: 30
}

වලංගු

{
  "name": "Alex",
  "age": 30
}

4. අගයන් අතර නැති කොමාව

ගුණ සහ අරේ අයිතම අතර කොමාවක් අවශ්‍යයි. විග්‍රහකය ඊළඟ උද්ධරණයේ හෝ වරහනේ Unexpected token වාර්තා කළ හැක, නැති කොමාවේ නොවේ.

අවලංගු

{
  "name": "Alex"
  "age": 30
}

වලංගු

{
  "name": "Alex",
  "age": 30
}

5. අඩු හෝ වැඩි වරහන්

වස්තු { } භාවිතා කරයි. අරේ [ ]. කැදලි JSON බොහෝ විට අසාර්ථක වේ: ] නැති විට, } වැඩි විට, හෝ දෙකම මාරු වූ විට. විවෘත-වසා යුගල ගණන් කරන්න.

අවලංගු

{
  "items": [1, 2
}

වලංගු

{
  "items": [1, 2]
}

6. අවලංගු එස්කේප් අනුක්‍රම

JSON තන්තුවක් තුළ පසුපස ඇල ඉර එස්කේප් ආරම්භ කරයි. " , \ සහ \n වැනි අනුක්‍රම වලංගුය. C:\Users ලෙස ලියන ලද Windows මාර්ගය නොවේ: \U නීත්‍යානුකූල JSON එස්කේප් නොවේ. පසුපස ඇල ඉර දෙගුණ කරන්න, නැතිනම් විග්‍රහකය එම අකුරේ නවතී.

අවලංගු

{"file":"C:\Users\Alex"}

වලංගු

{"file":"C:\\Users\\Alex"}

7. JSON ඇතුළත අදහස්

සම්මත JSON හි අදහස් නැත. සමහර වින්‍යාස මෙවලම් // හෝ /* */ පිළිගනී (JSONC, JSON5 ආදිය). එය සම්මත JSON නොවේ, JSON.parse ප්‍රතික්ෂේප කරයි.

අවලංගු

{
  // user name
  "name": "Alex"
}

Unexpected token යනු කුමක්ද?

විග්‍රහකය එම ස්ථානයේ අවසර නැති අකුරක් මුණගැසුණි. වාර්තා කළ ස්ථානය කියවීම නැවතුණු තැනයි. කලින් කොමාවක් අත්හැරියහොත්, දෝෂය ඊළඟ ගුණයේ උද්ධරණයට පෙන්විය හැක. වචන ධාවන කාලය අනුව වෙනස් වේ; සෑම බ්‍රව්සරයක්ම එකම වාක්‍යය මුද්‍රණය කරනු ඇතැයි බලාපොරොත්තු නොවන්න.

Unexpected end of JSON input යනු කුමක්ද?

අගය සම්පූර්ණ වීමට පෙර පෙළ අවසන් විය. සාමාන්‍ය හේතු: } හෝ ] නැත, කැපූ ආදානය, හිස් ශරීරය, හෝ කැඩුණු API ප්‍රතිචාරය. එකම දෝෂයක් නොවේ.

JSON.parse() අසාර්ථක වන්නේ ඇයි?

JSON.parse() වලංගු JSON පෙළ පමණක් පිළිගනී. මෙය සාර්ථකයි:

const text = '{"name":"Alex"}';
const data = JSON.parse(text);

මෙය අසාර්ථකයි, මන්ද තනි උද්ධරණ JSON නොවේ:

const text = "{'name':'Alex'}";
JSON.parse(text);

නිවැරදි දෝෂ පණිවිඩය JavaScript ධාවන කාලය මත රඳා පවතී. පණිවිඩය ඉඟියක් ලෙස සලකා, එම ස්ථානය අසල කොමා, උද්ධරණ සහ වරහන් පරීක්ෂා කරන්න.

JSON JavaScript වස්තුවක් නොවේ

JavaScript වස්තු ලිටරල් { name: 'Alex' } මෙන් පෙනෙන්නට පුළුවන. වලංගු JSON { "name": "Alex" } මෙන් විය යුතුය: ද්විත්ව-උද්ධරණ නම් සහ තන්තු, අවසන් කොමාව නැත, අදහස් නැත.

  • JSON පෙළ
  • විග්‍රහකය ටෝකන කියවයි
  • වලංගු දත්ත හෝ Unexpected token
දෝෂ සලකුණ විග්‍රහය නැවතුණු ස්ථානයයි, එය සැබෑ වැරැද්දට පසුව විය හැක.

JSON දෝෂයක් ඉක්මනින් සොයා ගන්නේ කෙසේද

මෙම අනුපිළිවෙලින් කරන්න. සම්පූර්ණ ගොනුව නැවත ලියා ආරම්භ නොකරන්න.

  1. JSON වලංගුකාරකයක් හරහා ධාවනය කරන්න.
  2. පළමු වාර්තා කළ දෝෂය කියවන්න.
  3. වාර්තා කළ ස්ථානයට මඳක් පෙර බලන්න.
  4. කොමා පරීක්ෂා කරන්න, විශේෂයෙන් අවසන් සහ නැති ඒවා.
  5. උද්ධරණ පරීක්ෂා කරන්න: ද්විත්ව පමණි.
  6. { } සහ [ ] ගළපන්න.
  7. තන්තුවල පසුපස ඇල ඉර එස්කේප් පරීක්ෂා කරන්න.
  8. දැඩි JSON අවශ්‍ය නම් අදහස් ඉවත් කරන්න.

සාමාන්‍ය නිවැරදි කිරීම්වල ඉක්මන් සිතියම:

ගැටලුව නිවැරදි කිරීම
අවසන් කොමාවඅවසන් අයිතමයට පසු කොමාව මකන්න.
තනි උද්ධරණනම් සහ තන්තු සඳහා ද්විත්ව උද්ධරණ භාවිතා කරන්න.
උද්ධරණ නැති යතුරගුණ නම ද්විත්ව උද්ධරණවලින් ඔතන්න.
නැති කොමාවගුණ හෝ අරේ අයිතම අතර කොමාවක් තබන්න.
නැති වරහනසෑම { } සහ [ ] යුගලයක්ම වසන්න.
අවලංගු එස්කේප්නීත්‍යානුකූල එස්කේප් භාවිතා කරන්න, හෝ මාර්ගවල පසුපස ඇල ඉර දෙගුණ කරන්න.
අදහසසම්මත JSON සඳහා // සහ /* */ ඉවත් කරන්න.

බ්‍රව්සරයේ JSON පරීක්ෂා කර ආකෘතිගත කරන්න

NEXNARA JSON සකසන්න / Diff මෙම උපාංගයේ JSON පරීක්ෂා කළ හැක.

ඔබට පරීක්ෂා කළ හැක, 2 ඉඩ, 4 ඉඩ හෝ ටැබ් සමඟ අලංකාර කළ හැක, minify, ලේඛන දෙකක් සසඳන්න (JSON Diff), සහ .json ගොනුවක් විවෘත කළ හැක. විග්‍රහය බ්‍රව්සරයේ JSON.parse භාවිතා කරයි, eval නොවේ.

5 MB ට වඩා විශාල ලේඛන මන්දගාමී විය හැක. 15 MB ට වඩා විශාල පෙළ බ්‍රව්සරයේ සැකසෙන්නේ නැත, පිටුව ප්‍රතිචාර දක්වන පරිදි.

JSON සැකසීමම ඔබේ බ්‍රව්සරයේ සිදු වේ. මෙම මෙවලම සඳහා පෙළ NEXNARA සේවාදායකයට යවන්නේ නැත. දැන්වීම් සහ අනෙකුත් අඩවි විශේෂාංග තවමත් ජාලය භාවිතා කරයි; එය සැකසීමෙන් වෙන්වේ.

අවලංගු JSON පරීක්ෂා කළ යුතුද? JSON සකසන්න / Diff විවෘත කර පෙළ අලවන්න.

FAQ

මගේ JSON Unexpected token කියන්නේ ඇයි?

විග්‍රහකය එහි අවසර නැති අකුරක් මුණගැසුණි. සැබෑ වැරැද්ද—බොහෝ විට නැති කොමාවක් හෝ තනි උද්ධරණයක්—එම ස්ථානයට මඳක් පෙර විය හැක.

JSON හි අවසන් කොමා අවසර තිබේද?

නැත. සම්මත JSON අවසන් ගුණයට හෝ අරේ අයිතමයට පසු කොමාවකට ඉඩ නොදේ. JavaScript වස්තු ලිටරල් බොහෝ විට ඉඩ දෙයි.

JSON තනි උද්ධරණ භාවිතා කළ හැකිද?

නැත. ගුණ නම් සහ තන්තු ද්විත්ව උද්ධරණ භාවිතා කළ යුතුය.

JSON හි අදහස් තිබිය හැකිද?

සම්මත JSON හි නැත. සමහර මෙවලම් අදහස් සහිත JSONC හෝ JSON5 පිළිගනී; JSON.parse ඒවා ප්‍රතික්ෂේප කරයි.

JSON.parse() අසාර්ථක වන්නේ ඇයි?

තන්තුව වලංගු JSON නොවේ. සාමාන්‍ය හේතු අවසන් කොමාව, තනි උද්ධරණ, උද්ධරණ නැති යතුරු, අදහස්, හෝ කැපූ අගයයි. නිවැරදි පණිවිඩය ධාවන කාලය මත රඳා පවතී.

JSON වලංගුදැයි කෙසේ පරීක්ෂා කරන්නද?

JSON සකසන්න / Diff වැනි වලංගුකාරකයකට අලවන්න, හෝ කොන්සෝලයක JSON.parse අමතන්න. විග්‍රහය විසි කළහොත් පෙළ වලංගු JSON නොවේ.