问题描述
我有一个经过验证的JSON,可以将其放入应用程序中,但是一旦选择了与JSON相关的项目,应用程序就会进入永久的“加载”周期。
我收到的错误是songcode.songwriter name = new songcode.songwriter();
。
这是我经过验证的JSON:
name.Requesting_check();
for(int i = 0; i<200; i++){
name.Adding_song();
}
name.Requesting_check();
for(int i = 0; i<200; i++){
name.Adding_song();
}
我能够获取数据并显示其他相同的JSON,但由于某种原因,它引发了此错误。
编辑:我正在使用其他API,且这些API的值中都包含HTML标记,并且这些API的运行情况都很好。
解决方法
您的JSON字符串包含转义的双引号:<a href=\"/parks/lakeside\">
。
一旦JSON代码被Javascript解释为字符串,转义的“迷路”。字符串中的转义引号变成普通引号:
console.log('a text with \"quotes\".') // --> logs 'a text with "quotes"'.
因此,在您的情况下,JSON.parse()
看到的实际字符串会导致解析错误,就像:
'{ "lodges_description": "<a href="/parks/lakeside">" },...'
您需要转义转义字符,以便Javascript知道您要将实际的反斜杠字符传递给JSON.parse()
函数:
console.log('a text with \\"quotes\\".') // --> logs 'a text with \"quotes\"'.
,
原来有一个与我正在使用的通道的关系API,其中包含一个额外的逗号。 :D
此问题已结束。