微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

经过验证的JSON抛出SyntaxError:属性必须是字符串文字

如何解决经过验证的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 举报,一经查实,本站将立刻删除。