/ / स्थिति 3 में JSON पर अप्रत्याशित टोकन पी को कैसे हल करें

कोणीय 2 या टाइपस्क्रिप्ट का उपयोग कर स्थिति 3 पर JSON में अप्रत्याशित टोकन पी को कैसे हल करें - जेसन, कोणीय, टाइपस्क्रिप्ट

यहां छवि विवरण दर्ज करें जब मैं संपादन के बाद सर्वेक्षण सामग्री को बचाने के लिए जाता हूं, तो मुझे यह त्रुटि मिलती है,

SyntaxError: Unexpected token p in JSON at position 3
at JSON.parse (<anonymous>)

कृपया इस समस्या को हल करने के लिए कोई भी मेरी मदद करें, मैं अपने कोड चिपका रहा हूं, कृपया मदद करें।

ts कोड:

   Surveypost = () => {
let token = this.auth.getAccessTokenId();
console.log(token)
let currentUser = this.auth.getCurrentUserData();
console.log(this.editor.text)
console.log(this.survey_val)
// let survey_json = JSON.parse(this.editor.text);
let survey_json:any;
try{
survey_json = JSON.parse(this.editor.text);
} catch(e) {
/*Handle the error scenario here*/
}
let survey_data = {
"value": survey_json,
};
console.log(survey_data)
this.AdminAPI
.createandSet(survey_data, token)
.subscribe(
survey => {
console.log(survey)
}, error => {
console.log(error);
}

);
}

मुझे अब तक का कंट्रोल्ड आउटपुट मिल रहा है, console.log(this.editor.text), तब त्रुटि आती है।

कंसोल.लॉग (this.editor.text) का कंसोलिडेटेड आउटपुट इस तरह शुरू होता है,

{
pages: [
{
name: "page1",
elements: [
{
type: "radiogroup",
name: "price",
title: "How long have you been a customer at {companyname}?",
isRequired: true,
choices: [
{
value: "less",
text: "0 - 3 months."
},
{
value: "medium",
text: "3 - 12 months."
},
{
value: "High",
text: "12 + months."
}
]

उत्तर:

उत्तर № 1 के लिए 1

this.editor.text एक अमान्य JSON सम्‍मिलित है। उस अमान्य JSON को पार्स करने की कोशिश करते समय त्रुटि होती है। तो संक्षेप में, निम्नलिखित पंक्ति वह है जो दुर्घटनाग्रस्त होती है: let survey_json = JSON.parse(this.editor.text);

से आउटपुट पकड़ो console.log(this.editor.text), यह एक JSON सत्यापनकर्ता / फ़ॉर्मेटर को गर्तित करें: https://jsonformatter.curiousconcept.com/ और फिर आपको आसानी से यह देखने में सक्षम होना चाहिए कि त्रुटि क्यों होती है, और प्रोग्राम JSON को पार्स करने में सक्षम क्यों नहीं है

जब JSON से एडिट किया गया है, तब से संपादित करें

जैसा कि आप ऊपर बताए गए लिंक से देख सकते हैं, JSON मान्य नहीं है, और यह लाइन पर त्रुटि संदेश का कारण है: let survey_json = JSON.parse(this.editor.text);। उदाहरण के लिए एक बुनियादी JSON में निम्नलिखित संरचना होनी चाहिए:

{
"key" : "value",
"key2" : "value2"
}

आप JSON को भी सही तरीके से समाप्त नहीं कर रहे हैं। मैंने JSON को एक मान्य JSON के लिए स्वरूपित किया है:

{
"pages":[
{
"name":"page1",
"elements":[
{
"type":"radiogroup",
"name":"price",
"title":"How long have you been a customer at {companyname}?",
"isRequired":true,
"choices":[
{
"value":"less",
"text":"0 - 3 months."
},
{
"value":"medium",
"text":"3 - 12 months."
},
{
"value":"High",
"text":"12 + months."
}
]
}
]
}
]
}

जवाब के लिए 0 № 2

जब आप तृतीय पक्ष स्रोत से भेजे गए कुछ पाठ को पार्स करने का प्रयास कर रहे हैं, तो पार्स लॉजिक को एक कोशिश कैच ब्लॉक से लपेटना एक अच्छा विचार है। लेकिन याद रखें कि दूरस्थ स्रोत में तुच्छ कीड़े को ठीक करने के बाद ही यह किया जाना चाहिए (यदि आपके पास पहुंच है, तो निश्चित रूप से)।

बदलने के,

let survey_json = JSON.parse(this.editor.text);

साथ में,

let survey_json;
try{
survey_json = JSON.parse(this.editor.text);
} catch(e) {
/*Handle the error scenario here*/
/*Lets assign an empty object(or possibly a default value) instead*/
survey_json = {};
}