如何通过Microsoft Graph Java SDK访问用户自定义Extension Property属性
MS Graph Java SDK访问用户扩展属性的最优方案
有两种无需处理原始响应的实现方案,可按需选择:
方案1:使用内置additionalDataManager直接读取
所有MS Graph SDK的模型类都内置了扩展字段存储容器,未在预设模型中定义的返回属性都会自动存入该容器,可直接读取:
// user为接口请求返回的User类实例 String favColour = (String) user.additionalDataManager() .get("extension_8655692d0a034443a9b32af6caa95f56_favColour");
该方案适合临时读取少量扩展属性的场景,无需额外定义类,只需注意属性不存在时会返回null,提前做好判空处理即可。
方案2:自定义扩展类实现强类型访问
如果需要类型安全、避免强转,或者需要频繁访问扩展属性,可自定义类继承原生User类,绑定扩展属性:
- 首先定义自定义User类:
import com.microsoft.graph.models.extensions.User; import com.google.gson.annotations.SerializedName; public class ExtendedUser extends User { // 注解值与你的扩展属性完整名称完全一致 @SerializedName("extension_8655692d0a034443a9b32af6caa95f56_favColour") public String favColour; }
- 请求时指定自定义类作为返回类型:
ExtendedUser user = graphClient.users("6dc2cecc-a3dd-4c18-ba7a-38b70db82e95") .buildRequest() .select("extension_8655692d0a034443a9b32af6caa95f56_favColour") .get(ExtendedUser.class); // 直接访问属性即可 String favColour = user.favColour;
内容的提问来源于stack exchange,提问作者super.t
相关产品推荐
相关产品推荐

