NodeJS API请求-解析JSON数据



我有这个请求,它提供了我JSON语法

request( url, function (error, response) {
console.log(JSON.parse(response.body))

在控制台中生成以下内容:

{
query: 'Manchester Holiday Inn',
moresuggestions: 2,
suggestions: [
{ group: 'CITY_GROUP', entities: [] },
{ group: 'HOTEL_GROUP', entities: [Array] },
{ group: 'LANDMARK_GROUP', entities: [] },
{ group: 'TRANSPORT_GROUP', entities: [Array] }
]
}

在HOTEL GROUP语法中有一些额外的信息:

{
"query":"Manchester Holiday Inn",
"moresuggestions":0,
"suggestions":[
{},
{
"group":"HOTEL_GROUP",
"entities":[
{
"geoId":"16071381",
"destinationId":"4234234",
"type":"HOTEL",
"caption":"Manchester Holiday Inn Hotel",
"name":"Manchester Holiday Inn Hotel"
}
]
},

我想提取目的地ID和酒店名称

request( url, function (error, response) {
const data = JSON.parse(response.body)
hotelName = data['suggestions[1].entities[0].name'],
hotelID = data["suggestions[1].entities[0].destinationId"]

console.log(hotelName)
console.log(hotelID)

但是控制台的输出显示没有定义hotelName和hotelID。我不知道我做错了什么。

undefined
undefined

您用来访问属性的语法是错误的-您需要

const hotelName = data.suggestions[1].entities[0].name
const hotelID = data.suggestions[1].entities[0].destinationId

你也可以使用对象解构,像这样:

const {name: hotelName, destinationId: hotelID} = data.suggestions[1].entities[0];

可以这样访问

data["suggestions"][1]["entities"][0][name]

最新更新