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

如何在React中使用嵌套map函数?解决嵌套JSON数据渲染问题

React渲染嵌套JSON数据的问题解决

问题描述

我有一段嵌套结构的JSON数据,需要在React中获取数据并渲染到UI界面,但因数据嵌套的问题无法实现。

JSON数据

const data = [
  {
    "First Row": {
      "info": 274.176,
    }
  },
  {
    "Second Row": {
      "info": 139.536,
    }
  }
]

当前错误代码

{data
  ? data.map((val, i) =>
      val[i].map((val2) => {
        <>
          <div>{val2.info}</div>
        </>;
      })
    )
  : ""}

错误原因

  1. 数组中的每个val是单个对象(如{"First Row": {...}}),并非数组,不能调用map方法
  2. val[i]的写法逻辑错误:i是数组元素的索引,和对象内部的自定义键名("First Row"、"Second Row")无关,无法通过索引获取对象的键值对

正确实现方式

方式一:仅渲染info数值

{data ? data.map((item) => {
  // 提取对象中的唯一值(每个数组元素仅含一个键值对)
  const rowData = Object.values(item)[0];
  // 用info值作为唯一key,确保React元素的唯一性
  return <div key={rowData.info}>{rowData.info}</div>;
}) : ""}

方式二:同时渲染行名称和info数值

{data ? data.map((item, index) => {
  // 将对象转为键值对数组,遍历每个键值对
  return Object.entries(item).map(([rowName, rowData]) => (
    // 用行名称+索引作为唯一key
    <div key={`${rowName}-${index}`}>
      <span>{rowName}: </span>
      <span>{rowData.info}</span>
    </div>
  ));
}) : ""}

说明

  • Object.values(item):将对象的所有值提取为数组,这里每个数组元素仅含一个值,直接取索引0即可获取包含info的对象
  • Object.entries(item):将对象转为[键名, 值]格式的数组,方便同时获取行名称和对应数据
  • 必须为每个React列表元素添加唯一的key属性,避免React渲染警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:25:24