繁体   English   中英

NodeJS API 请求 - 解析的 JSON 数据

[英]NodeJS API Request - parsed JSON Data

我有这个请求,它为我提供了 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

您可以像这样访问它

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

您用于访问属性的语法是错误的 – 您需要

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM