gpt4 book ai didi

javascript - 经过验证的JSON抛出SyntaxError : Property must be a string literal

转载 作者:行者123 更新时间:2023-12-03 08:34:05 24 4
gpt4 key购买 nike

我已经将经过验证的JSON放入应用程序中,但是一旦选择与JSON相关的项目,应用程序就会进入永久的“加载”周期。
我收到的错误是Error: Uncaught (in promise): SyntaxError: JSON Parse error: Property name must be a string literal
这是我经过验证的JSON:

{
"lodges": [

{
"title": "Lakeside Lodge",
"url_title": "lakeside-lodge",
"lodges_short_name": "Lakeside",
"lodges_description": "<h5><strong>Coming Soon: Estimated Opening Fall 2021 </strong></h5><p>The Lakeside Lodge sits will rest in the center of this premier state park, <a href=\"/parks/lakeside\">Lakeside State Park</a>.</p>",
"lodges_summary": "<p>Anticipated opening in Fall 2021, the new 85-room Lodge at Lakeside State Park!</p>",
"reservation_link": "null"
}
]
}

这是我用来获取并显示在数据中的代码:
showAmenities(item){
let list : any;
let res : any;
switch (item) {
case 'lodges':
this.data.getParkLodges(this.park).then(data => {
let res = JSON.parse(data);
let list = res.lodges;
this.openAmenityListPage(item,list);
}
}
}

openAmenityListPage(item,list){
let amenitiesModal = this.modalCtrl.create(ParkAmenitiesListPage, {title : item, listItems: list, park: this.parkDetails.title, parkShortName: this.parkShortName });
amenitiesModal.present();
}
我能够获取数据并显示其他相同的JSON,但是由于某种原因,该错误将引发此错误。
编辑:我正在与其他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\"'.

关于javascript - 经过验证的JSON抛出SyntaxError : Property must be a string literal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63716584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com