首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目录API中缺少UserLocation对象转换

目录API中缺少UserLocation对象转换
EN

Stack Overflow用户
提问于 2019-06-18 14:43:59
回答 1查看 76关注 0票数 0

.NET / Google目录API

我正在处理目录API中的一些属性。

例如,在手机上,我可以做这样的事情:

代码语言:javascript
复制
System.Collections.Generic.IList <Google.Apis.Admin.Directory.directory_v1.Data.UserPhone> phone = results.Phones

我会得到与用户相关的电话号码列表。因此,这与我目前正在处理的所有其他对象一起工作,直到我在目录API中遇到"location“(似乎是"UserLocation”)为止。在调用getUser()时,我确实验证了对象看起来与位置json匹配。

这一行:

代码语言:javascript
复制
System.Collections.Generic.IList<Google.Apis.Admin.Directory.directory_v1.Data.UserLocation> loc = results.Locations;

无效/不编译:

“无法隐式地将类型'object‘转换为’System.Collection.Generic.IList‘。”

当我在API中检查getUser的结果时,这个字段没有其他字段的类型(例如电话),它是一个通用的"object {Newtonsoft.JSon.linq.JArray}"

没什么大不了的,我尝试使用以下方法手动转换JSON数组:(隐式输入,因此我确保得到了正确的对象) System.Collections.Generic.IList location =System.Collections.Generic.IList

这也不编译:

“不能隐式地将类型'Google.Apis.Admin.Directory.directory_v1.Data.UserLocation‘转换为’System.Collection s.Generic.IList‘。存在显式转换(您缺少强制转换吗?)

我没有在google管理面板中看到多个位置,所以我认为这可能是一个数组错误报告,所以我尝试了这一行:

代码语言:javascript
复制
Google.Apis.Admin.Directory.directory_v1.Data.UserLocation location = (Google.Apis.Admin.Directory.directory_v1.Data.UserLocation)results.Locations;

它编译ok / no错误或警告。但当我逃跑的时候:

Google.Apis.Admin.Directory.directory_v1.Data.UserLocation;‘:无法将类型为Newtonsoft.Json.Linq.JArray的对象转换为Newtonsoft.Json.Linq.JArray类型

首先,这看起来像是中的一个bug,我将在它上打开一个bug票据。但我需要在短期内克服这个问题。如何将此对象转换为UserLocation[]类型?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-20 14:09:41

找到答案后,这是将对象反序列化为iList的方法(强类型但不需要这样做):

代码语言:javascript
复制
IList<Google.Apis.Admin.Directory.directory_v1.Data.UserLocation> location = 
JsonConvert.DeserializeObject<IList<Google.Apis.Admin.Directory.directory_v1.Data.UserLocation>>(results.Locations.ToString());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56651709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档