এখন দৃশ্যত \r, \b, \t, \f, ইত্যাদি শুধুমাত্র সমস্যাযুক্ত অক্ষর যে আপনি এই এরর দিতে পারেন না।
নোট করুন যে কিছু ব্রাউজারের ইনপুটটির জন্য অতিরিক্ত প্রয়োজনীয়তা থাকতে পারে JSON.parse।
আপনার ব্রাউজারে এই পরীক্ষার কোডটি চালান:
var arr = [];
for(var x=0; x < 0xffff; ++x){
try{
JSON.parse(String.fromCharCode(0x22, x, 0x22));
}catch(e){
arr.push(x);
}
}
console.log(arr);
Chrome- এ টেস্টিং, আমি দেখতে এটি করার অনুমতি দেয় না JSON.parse(String.fromCharCode(0x22, x, 0x22));যেখানে x34, 92, বা 0 থেকে 31 হয়।
চর 34 এবং 92 হয় "এবং \যথাক্রমে অক্ষর, এবং তারা সাধারণত বলে আশা করা হয় এবং সঠিকভাবে পালিয়ে গিয়েছিলেন। এটি 0 থেকে 31 পর্যন্ত অক্ষর যা আপনাকে সমস্যা দেয়।
ডিবাগিংয়ে সহায়তা করতে, আপনার করার আগে JSON.parse(input), প্রথমে যাচাই করুন যে ইনপুটটিতে সমস্যাযুক্ত চরিত্রগুলি নেই:
function VerifyInput(input){
for(var x=0; x<input.length; ++x){
let c = input.charCodeAt(x);
if(c >= 0 && c <= 31){
throw 'problematic character found at position ' + x;
}
}
}