0

目标:将图形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 进行反序列化。

4

0 回答 0