अब जाहिरा तौर पर \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);
क्रोम पर परीक्षण, मैं देखता हूं कि यह अनुमति नहीं है कि 34, 92 या 0 से 31 तक JSON.parse(String.fromCharCode(0x22, x, 0x22));कहां xहै।
वर्ण 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;
}
}
}