You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中解析JSON并提取指定字段输出展示到HTML

解决方法

核心原因

你无法直接提取目标值的核心原因是 JSON 结构中的fares是数组类型,内部存储的是多个航班套餐对象,必须先指定数组下标(数组第一个元素的下标为0),才能访问到内部的outbound相关属性。

单条数据取值代码

如果确定只需要第一个航班套餐的信息,直接通过下标取值即可:

  • 出发机场名称:const depAirport = data.fares[0].outbound.departureAirport.name
  • 到达机场名称:const arrAirport = data.fares[0].outbound.arrivalAirport.name
  • 出发日期:const depDate = data.fares[0].outbound.departureDate
  • 单程票价:const price = data.fares[0].outbound.price.value

遍历所有航班取值代码

如果后续接口会返回多条航班数据,可以用遍历方法批量提取:

data.fares.forEach((fareItem, index) => {
  const depAirport = fareItem.outbound.departureAirport.name
  const arrAirport = fareItem.outbound.arrivalAirport.name
  const depDate = fareItem.outbound.departureDate
  const price = fareItem.outbound.price.value
  // 按需处理提取到的值,比如打印测试
  console.log(`第${index+1}个航班:${depAirport} → ${arrAirport},出发时间${depDate},票价${price}欧元`)
})

渲染到HTML示例

给一个最简单的渲染到页面的参考代码:

<!-- 页面内提前定义好承载航班信息的容器 -->
<div id="flight-container"></div>
const container = document.getElementById('flight-container')
// 遍历拼接DOM元素插入页面
data.fares.forEach(fareItem => {
  const flightCard = document.createElement('div')
  // 可以自行修改样式和展示格式
  flightCard.innerHTML = `
    <h3>${fareItem.outbound.departureAirport.name} → ${fareItem.outbound.arrivalAirport.name}</h3>
    <p>出发时间:${new Date(fareItem.outbound.departureDate).toLocaleString('zh-CN')}</p>
    <p>票价:${fareItem.outbound.price.value} ${fareItem.outbound.price.currencySymbol}</p>
    <hr>
  `
  container.appendChild(flightCard)
})

提示:可以先加逻辑判断if(data.fares?.length) 再执行取值操作,避免接口返回空数据时代码报错。


内容的提问来源于stack exchange,提问作者user16796430

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:06:01