.NET / Google Directory API
Я работаю с некоторыми атрибутами в каталоге API.
Например, на телефонах я могу сделать что-то вроде этого:
System.Collections.Generic.IList <Google.Apis.Admin.Directory.directory_v1.Data.UserPhone> phone = results.Phones
И я получу список телефонных номеров, связанных с пользователем.Так что это работает вместе со всеми другими объектами, с которыми я работаю до тех пор, пока не наткнулся на «местоположение», которое в API каталога выглядит как «UserLocation».Я проверил, что объект выглядит как совпадает с местоположением json, когда я вызываю getUser ().
Эта строка:
System.Collections.Generic.IList<Google.Apis.Admin.Directory.directory_v1.Data.UserLocation> loc = results.Locations;
недопустима / не компилируется:
"Невозможно неявно преобразовать тип 'object' в 'System.Collections.Generic.IList'."
Когда я проверяю результаты getUser в API, это поле не имееттип, как остальные поля (например, телефон), это общий "object {Newtonsoft.JSon.linq.JArray}"
Ничего страшного, я попытался вручную преобразовать массив JSON, используя это: (неявно набрал, так что я уверен, что я 'у нас есть правильный объект) System.Collections.Generic.IList location = JsonConvert.DeserializeObject (results.Locations.ToString ());
Это также не компилируется:
"Невозможно неявно преобразовать тип «Google.Apis.Admin.Directory.directory_v1.Data.UserLocation» в «System.Collections.Generic.IList». Существует явное преобразование (вам не хватает приведения?) »
Я не видел несколько мест в админ-панели Google.Я подумал, что это может быть неверное представление в виде массива, поэтому я попробовал эту строку:
Google.Apis.Admin.Directory.directory_v1.Data.UserLocation location = (Google.Apis.Admin.Directory.directory_v1.Data.UserLocation)results.Locations;
, которая компилирует нормально / без ошибок или предупреждений.Но при запуске я получаю:
System.InvalidCastException: «Невозможно привести объект типа» Newtonsoft.Json.Linq.JArray к типу Google.Apis.Admin.Directory.directory_v1.Data.UserLocation;'
Во-первых, это похоже на ошибку в Google .Net API, и я открою для нее заявку на ошибку.Но мне нужно преодолеть это сейчас на короткий срок.Как я могу преобразовать этот объект в тип UserLocation []?