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

如何在C#中根据设备编号查找JSON对应的Registers数据

根据设备编号查找对应Registers数据的解决方案

没问题,我来帮你搞定这个需求!从你的JSON结构来看,registers对象的键正好是设备编号,所以提取对应数据的逻辑其实很直接,下面我用两种常用语言给你实现,你可以按需选用。

JavaScript实现方案

  1. 先定义你的原始JSON数据(如果是从文件读取,记得先解析成JSON对象)
  2. 写一个简单的查找函数,直接通过设备编号定位数据
  3. 加入边界判断,避免设备编号不存在时出错

代码示例

// 你的原始JSON数据(如果是文件读取,用JSON.parse()转换)
const deviceData = {
  "devices": {
    "AEVL2020":{ "deviceSerialId": "AEVL2020" },
    "AEVL2021":{ "deviceSerialId": "AEVL2021" }
  },
  "registers":{
    "AEVL2020":{
      "12":{ "user_id": "1", "employee_id": "12", "name": "Juan Dela Cruz", "privilege": "0" },
      "32":{ "user_id": "2", "employee_id": "32", "name": "Pedro Dela Cruz", "privilege": "0" }
    },
    "AEVL2021":{
      "29":{ "user_id": "1", "employee_id": "29", "name": "Maria Dela Cruz", "privilege": "0" },
      "222":{ "user_id": "2", "employee_id": "222", "name": "Jay Dela Cruz", "privilege": "0" }
    }
  }
};

// 核心查找函数
function getRegistersByDevice(deviceId) {
  // 先检查设备编号是否存在,避免报错
  if (deviceData.registers.hasOwnProperty(deviceId)) {
    return deviceData.registers[deviceId];
  }
  // 不存在的话返回空对象,也可以改成你需要的提示信息
  return {};
}

// 调用示例,传入设备编号AEVL2020
console.log(getRegistersByDevice("AEVL2020"));
// 输出结果就是你想要的格式:
// {
//   "12":{ "user_id": "1", "employee_id": "12", "name": "Juan Dela Cruz", "privilege": "0" },
//   "32":{ "user_id": "2", "employee_id": "32", "name": "Pedro Dela Cruz", "privilege": "0" }
// }

Python实现方案

如果用Python处理,逻辑完全一致,利用字典的键访问特性就能快速拿到数据:

代码示例

device_data = {
    "devices": {
        "AEVL2020": {"deviceSerialId": "AEVL2020"},
        "AEVL2021": {"deviceSerialId": "AEVL2021"}
    },
    "registers": {
        "AEVL2020": {
            "12": {"user_id": "1", "employee_id": "12", "name": "Juan Dela Cruz", "privilege": "0"},
            "32": {"user_id": "2", "employee_id": "32", "name": "Pedro Dela Cruz", "privilege": "0"}
        },
        "AEVL2021": {
            "29": {"user_id": "1", "employee_id": "29", "name": "Maria Dela Cruz", "privilege": "0"},
            "222": {"user_id": "2", "employee_id": "222", "name": "Jay Dela Cruz", "privilege": "0"}
        }
    }
}

def get_registers_by_device(device_id):
    # 用get方法,不存在时返回空字典
    return device_data["registers"].get(device_id, {})

# 调用示例
print(get_registers_by_device("AEVL2020"))

逻辑说明

你的JSON结构设计得很清晰,registers的键就是设备编号,所以不需要复杂的遍历,直接通过键名访问就能拿到对应的数据。加入边界判断是为了避免传入不存在的设备编号时抛出错误,让代码更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 22:23:09