如何解决经过验证的JSON抛出SyntaxError:属性必须是字符串文字
我有一个经过验证的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
此问题已结束。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。