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

React中如何获取JSON文件数据并按升序渲染id与name字段

从JSON提取字段并升序渲染实现方案(原生JS示例,无框架依赖,适合初学者)

步骤1:获取JSON数据

如果是本地JSON文件(比如命名为data.json),可以用fetch方法获取,代码示例:

// 读取本地JSON文件
fetch('./data.json')
  .then(res => res.json())
  .then(rawData => {
    // 拿到原始数据后执行后续处理
    processAndRender(rawData)
  })

如果是直接定义在JS里的JSON数组,可以直接赋值使用:

const rawData = [{"id": 0,"name": "Vernon Dunham","company": "Qualcore","email": "vernon.dunham@qualcore.com"}, {"id": 1,"name": "Dori Neal","company": "Sunopia","email": "dori.neal@sunopia.com"}, {"id": 2,"name": "Rico Muldoon","company": "Airconix","email": "rico.muldoon@airconix.com"}]

步骤2:数据预处理:提取指定字段 + 升序排序

  • 提取字段:用数组map方法,仅保留需要的id和name字段
  • 升序排序:用数组sort方法,支持按id升序或者name字母/拼音升序两种场景

处理函数示例:

function processAndRender(rawData) {
  // 1. 提取仅id和name字段
  const filteredData = rawData.map(item => ({
    id: item.id,
    name: item.name
  }))

  // 2. 升序排序,二选一即可
  // 方案A:按id升序
  const sortedData = filteredData.sort((a, b) => a.id - b.id)
  // 方案B:按name字母/拼音升序
  // const sortedData = filteredData.sort((a, b) => a.name.localeCompare(b.name, 'en'))
  // 如果是中文name,把'en'换成'zh-CN'即可

  // 3. 执行渲染
  renderData(sortedData)
}

步骤3:渲染到页面

最简单的原生DOM渲染示例,假设页面有个id为list-container的容器:

<!-- 页面容器 -->
<ul id="list-container"></ul>
function renderData(sortedData) {
  const container = document.getElementById('list-container')
  // 拼接HTML字符串
  let htmlStr = ''
  sortedData.forEach(item => {
    htmlStr += `<li>ID:${item.id},姓名:${item.name}</li>`
  })
  // 插入到页面
  container.innerHTML = htmlStr
}

渲染效果参考

按id升序的输出结果:

  • ID:0,姓名:Vernon Dunham
  • ID:1,姓名:Dori Neal
  • ID:2,姓名:Rico Muldoon

按name字母升序的输出结果:

  • ID:1,姓名:Dori Neal
  • ID:2,姓名:Rico Muldoon
  • ID:0,姓名:Vernon Dunham

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:48:04