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

如何访问JSON内层对象并将值写入Ant Design React项目的dataSource数组

React+AntD 提取JSON内层quote.USD.price组装dataSource实现方案

内层对象值访问


方案1:提前处理原始数据,组装为标准dataSource

这种方式适合需要多处使用price字段的场景,提前处理一次即可全局调用。
假设接口返回的原始单条数据结构如下:

{
  "id": 1,
  "name": "Bitcoin",
  "symbol": "BTC",
  "quote": {
    "USD": {
      "price": 30000,
      "percent_change_24h": 2.5
    }
  }
}

组件实现代码:

import { Table, useEffect, useState } from 'antd'

const CryptoPriceTable = () => {
  const [dataSource, setDataSource] = useState([])

  const fetchData = async () => {
    // 替换为你的实际接口请求逻辑
    const response = await fetch('你的业务接口地址')
    const rawData = await response.json()
    const originList = rawData.data || []

    // 遍历原始数组,提取内层价格字段组装新数组
    const formattedList = originList.map(item => ({
      // 保留原有需要的字段
      id: item.id,
      name: item.name,
      symbol: item.symbol,
      // 用可选链避免字段不存在导致报错,兜底值可按需修改
      usdPrice: item.quote?.USD?.price || 0
    }))

    // 赋值给dataSource
    setDataSource(formattedList)
  }

  useEffect(() => {
    fetchData()
  }, [])

  const columns = [
    {
      title: '币种名称',
      dataIndex: 'name',
      key: 'name'
    },
    {
      title: '币种代码',
      dataIndex: 'symbol',
      key: 'symbol'
    },
    {
      title: 'USD价格',
      dataIndex: 'usdPrice',
      key: 'usdPrice',
      // 可选:格式化价格展示
      render: (val) => `$${val.toLocaleString()}`
    }
  ]

  return <Table rowKey="id" dataSource={dataSource} columns={columns} />
}

export default CryptoPriceTable

方案2:直接在表格列配置中读取内层字段

如果不需要多处使用price字段,可直接在列的render方法中读取,无需提前处理dataSource:

const columns = [
  // 其他列配置省略
  {
    title: 'USD价格',
    key: 'usdPrice',
    render: (_, record) => {
      const price = record.quote?.USD?.price || 0
      return `$${price.toLocaleString()}`
    }
  }
]

// 这种情况dataSource直接赋值原始接口返回的数组即可
setDataSource(originList)

注意事项

  • 必须使用可选链?.操作符访问嵌套字段,避免quote、USD任意一层不存在时抛出错误导致页面白屏
  • 兜底值可根据业务需求调整,比如不需要展示0的话可以替换为'--'
  • 如果需要对价格做排序、筛选等表格操作,推荐使用方案1提前处理字段,性能更优

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:45:05