目标:将图形api的json字符串转换为相应的对象
当我们调用 microsoft graph api 时,有时我们会得到如下响应:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"value": [
{
"businessPhones": [],
"displayName": "Conf Room Adams",
"givenName": null,
"jobTitle": null,
"mail": "Adams@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "Adams@M365x214355.onmicrosoft.com",
"id": "6e7b768e-07e2-4810-8459-485f84f8f204"
},
{
"businessPhones": [
"+1 425 555 0109"
],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Product Marketing Manager",
"mail": "AdeleV@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
}
为了获得上述响应,我们正在使用
var content = await response.Content.ReadAsStringAsync();
现在的问题是我们如何将这个 json 格式的字符串转换为特定的对象或对象列表?
您可以使用以下行:
var userList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EmailAddress>>(Newtonsoft.Json.Linq.JObject.Parse(content).GetValue("value").ToString());
在上述语句中,首先我们将该 json 字符串转换为 Jobject 并仅获取 value 属性。现在我需要做的只是将 json 反序列化为相应的对象(例如列表)。我在这里取了列表,因为我有 json 字符串,但你可以根据你得到 json 的响应进行转换。如果您请求会议室,那么您将获得 json 响应,然后您使用 List 进行反序列化。