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

如何使用JavaScript在JSON文件中按ID查找对应数据?

JavaScript按ID检索JSON数据实现方案

你的JSON结构本身以ID作为顶层键,不需要做遍历查找,直接按键取值即可,实现步骤如下:

  1. 先把JSON内容解析为JS可操作的对象,如果数据源本身已经是JS对象可以跳过解析步骤
  2. 编写查询函数,统一ID类型后做存在性校验,返回对应结果

完整示例代码

// 原始JSON数据,若从接口/文件读取直接替换此处即可
const rawJsonData = `{
  "1": {
    "name": "some random name 1",
    "nickname": "some random nickname 1"
  },
  "2": {
    "name": "some random name 2",
    "nickname": "some random nickname 2"
  }
}`;

// 解析为JS对象存储
const dataSource = JSON.parse(rawJsonData);

/**
 * 按ID查询数据
 * @param {string|number} id 目标数据ID
 * @returns {object|null} 匹配到的数据,无匹配返回null
 */
function queryDataById(id) {
  // 统一转字符串,避免传数字ID时和JSON的字符串键不匹配
  const formatId = String(id);
  return dataSource.hasOwnProperty(formatId) ? dataSource[formatId] : null;
}

使用方式

直接调用函数,把返回结果存入变量即可:

// 查询ID为1的数据存入变量
const dataOfId1 = queryDataById(1);
console.log(dataOfId1); // { name: "some random name 1", nickname: "some random nickname 1" }

// 查询ID为2的数据存入变量
const dataOfId2 = queryDataById("2");
console.log(dataOfId2); // { name: "some random name 2", nickname: "some random nickname 2" }

// 查询不存在的ID
const notExistData = queryDataById(999);
console.log(notExistData); // null

注意事项

  • 不要用遍历整个对象的方式查数据,这种ID做键的结构直接按键取值时间复杂度是O(1),性能远高于遍历
  • 统一ID类型的步骤不要省,很多人踩坑传数字ID查不到,就是因为JSON解析后键都是字符串类型
  • 加存在性判断是为了避免拿到undefined,后续业务代码做非空判断时逻辑更统一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:24:31