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 રનટાઇમ પર આધાર રાખે છે. સંદેશને સંકેત ગણો, પછી તે સ્થાન પાસે અલ્પવિરામ, અવતરણ અને કૌંસ તપાસો.
JavaScript ઑબ્જેક્ટ લિટરલ { name: 'Alex' } જેવું દેખાઈ શકે. માન્ય JSON { "name": "Alex" } જેવું હોવું જોઈએ: ડબલ-અવતરણ નામો અને સ્ટ્રિંગ, અંતિમ અલ્પવિરામ નહીં, ટિપ્પણી નહીં.
- JSON લખાણ
- પાર્સર ટોકન વાંચે છે
- માન્ય ડેટા અથવા Unexpected token
JSON ભૂલ ઝડપથી કેવી રીતે શોધવી
આ ક્રમમાં કામ કરો. આખી ફાઇલ ફરી લખીને શરૂ ન કરો.
- JSON વેલિડેટરમાંથી ચલાવો.
- પહેલી અહેવાલ થયેલી ભૂલ વાંચો.
- અહેવાલ થયેલા સ્થાનથી થોડું પહેલાં જુઓ.
- અલ્પવિરામ તપાસો, ખાસ કરીને અંતિમ અને ખૂટતા.
- અવતરણ તપાસો: ફક્ત ડબલ.
- { } અને [ ] મેળવો.
- સ્ટ્રિંગમાં બેકસ્લેશ એસ્કેપ તપાસો.
- કડક 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 નથી.