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

如何将指定结构的JSON映射为React表格并实现对应展示效果

实现思路

  • 第一步提取表头:直接取目标JSON对象的所有可枚举键作为表格列名
  • 第二步组装行数据:所有列对应的数组长度一致,按索引遍历取每个列对应位置的值,拼接为单行数据

完整实现代码

import React from 'react';

// 你的源数据
const rawData = {
  "code": [
    "111111",
    "222222",
    "333333"
  ],
  "name": [
    "nameA",
    "nameB",
    "nameC" // 原示例JSON此处为nameB,和预期表格内容不符,按需调整即可
  ],
  "price": [
    1,
    2,
    3,
  ]
}

const JsonTable = () => {
  // 提取表头列
  const columns = Object.keys(rawData);
  // 取总⾏数,默认取第一列的数组长度,可自行增加非空校验
  const rowCount = rawData[columns[0]].length;

  return (
    <div className="s-table-container">
      <table className="s-table">
        <thead>
          <tr>
            {columns.map(col => (
              <th key={col} style={{textAlign: 'center'}}>{col}</th>
            ))}
          </tr>
        </thead>
        <tbody>
          {Array.from({length: rowCount}).map((_, rowIndex) => (
            <tr key={rowIndex}>
              {columns.map(col => (
                <td key={col} style={{textAlign: 'center'}}>{rawData[col][rowIndex]}</td>
              ))}
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  )
}

export default JsonTable;

注意点

  • 可自行增加边界校验逻辑,比如判断所有列的数组长度是否一致,避免出现渲染错位
  • 如果是异步获取数据的场景,增加rawData的非空判断即可

内容的提问来源于stack exchange,提问作者Kamil von Horoz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:45:05