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

Node.js中如何根据用户ID动态访问JSON内的目标字段?

解决Node.js中动态访问Discord用户ID对应JSON字段的问题

你的核心问题在于users是数组类型,每个元素是一个以用户ID为唯一键的对象,所以不能直接通过数组索引或对象键的方式直接定位目标数据,必须先遍历数组找到包含目标USER_ID的元素,再提取对应值。

具体实现代码

假设你已经成功读取并解析了scrumUsers.json,可以用以下代码动态获取目标用户数据:

// 动态获取的Discord用户ID
const USER_ID = "你的用户ID";

// 遍历数组,找到包含目标USER_ID作为键的元素
const targetItem = jsonParsed.users.find(item => Object.keys(item).includes(USER_ID));

// 检查是否找到目标用户
if (targetItem) {
  // 取出该用户的完整数据
  const userData = targetItem[USER_ID];
  // 访问userID字段
  console.log(userData.userID);
} else {
  console.log("未找到对应用户");
}

为什么之前的方法无效

  • jsonParsed.users.[USER_ID]是语法错误,数组访问不能在[]前加.;
  • jsonParsed.users[USER_ID]会把USER_ID当成数组的索引值,但你的users是存储对象的数组,不是以用户ID为索引的关联数组,所以必然找不到数据。

优化建议(可选)

如果可以修改JSON结构,建议把users从数组改为对象,直接以用户ID作为键,这样访问效率更高,无需遍历:
修改后的scrumUsers.json结构:

{
  "users": {
    "123456": {
      "userID": "123456",
      "其他字段": "对应值"
    },
    "789012": {
      "userID": "789012",
      "其他字段": "对应值"
    }
  }
}

此时直接通过jsonParsed.users[USER_ID].userID就能访问目标字段,无需遍历数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:51:16