1

当我尝试将 JSON 响应转换为Graph.EducationAssignment根对象时,没有数据。我没有收到错误消息,只是一个空对象。

我打电话/beta/education/classes/{classId}/assignments

HttpResponseMessage response = await HttpClient.GetAsync(webApiUrl);
if (response.IsSuccessStatusCode)
{
    string json = await response.Content.ReadAsStringAsync();

    Microsoft.Graph.EducationAssignment Assignments =
        JsonConvert.DeserializeObject<Microsoft.Graph.EducationAssignment>(json);

    // List<Microsoft.Graph.EducationAssignment> Assignments1 =
    //    JsonConvert.DeserializeObject<List<Microsoft.Graph.EducationAssignment>>(json);
}

由于响应的大小,这里是第一行,它表明分配保存在一个数组中。

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#education/classes('id')/assignments",
  "value": [
    {
      "classId": "blah-blah",
      "displayName": "The homeless",
      "closeDateTime": null

如果有人可以帮助我,我将不胜感激。

在此处输入图像描述

4

1 回答 1

1

你没有描述Microsoft.Graph.EducationAssignment它看起来像什么或它来自哪里。最可能的问题是您试图将资源集合(包含在 中value)反序列化为单个对象。

除非您熟悉 OData 和 JSON 序列化,否则我会避免尝试手工制作您自己的 Graph 客户端。使用Microsoft Graph Beta SDK会更轻松。SDK 将为您处理所有这些,您最终将获得更简洁的代码:

var assignments = await graphClient
    .Education
    .Classes["id"]
    .Assignments
    .Request()
    .GetAsync();

var assignment = await graphClient
    .Education
    .Classes["id"]
    .Assignments["id"]
    .Request()
    .GetAsync();

于 2020-10-03T01:17:55.057 回答