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

在PowerShell中筛选Graph API返回的registeredDevices的id属性

解决Graph API返回registeredDevices冗余数据的方案

一、API请求层面直接过滤(最高效)

Graph API支持在$expand参数中嵌套$select,直接指定关联资源需要返回的字段,从源头减少冗余数据传输:

  1. 构造查询语句时,同时用$select指定用户主对象需要的字段,再在$expand里给registeredDevices添加字段筛选:
    GET /users/<userId>?select=mail,jobTitle,id&$expand=registeredDevices($select=id)
    
    这样返回的registeredDevices数组只会包含每个设备的id字段,其他冗余数据会被直接过滤掉。

二、客户端侧处理(针对特殊内容筛选)

如果你的需求是从registeredDevices的某个字段值中提取以"id="开头的子串,而非仅保留设备的id属性,就需要在拿到API返回结果后做客户端处理:

示例(JavaScript)

假设返回的设备对象中,某个字符串字段包含id=xxx格式的内容,遍历提取:

// 假设apiResponse是Graph API返回的完整结果
const targetValues = apiResponse.registeredDevices.flatMap(device => {
  // 遍历设备的所有属性值,筛选出以"id="开头的字符串
  return Object.values(device).filter(val => 
    typeof val === 'string' && val.startsWith('id=')
  );
});

如果明确知道目标字段(比如deviceId),可以更精准提取:

const filteredIds = apiResponse.registeredDevices
  .map(device => device.deviceId)
  .filter(id => id?.startsWith('id='));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:14:55