Kiedy próbuję przekonwertować odpowiedź JSON na obiekt główny {X0}} Brak danych. Nie mam komunikatu o błędzie, tylko pusty obiekt.

Dzwonię /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);
}

Ze względu na rozmiar odpowiedzi tutaj jest pierwsza linia, która pokazuje, że zadania są przechowywane w tablicy.

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

Doceniłbym to, jeśli ktoś mógł mi pomóc.

enter image description here

1
Jono 2 październik 2020, 22:55

1 odpowiedź

Najlepsza odpowiedź

Nie opisujesz tego, jak wygląda Microsoft.Graph.EducationAssignment lub skąd pochodzi. Najbardziej prawdopodobną kwestią jest to, że próbujesz odstąpić odbiór zasobów (który jest zawarty w value) w jednym obiekcie.

Chyba że zaznajisz z Serializacją Odaty i JSON, uniknąłbym próbowania ręki - rzemiosła własnego klienta wykresu. Będziesz mieć znacznie łatwiejszy czas za pomocą Microsoft Grap Beta SDK. SDK obsługuje to wszystko dla Ciebie i skończysz z Cleaner Code:

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

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

1
Marc LaFleur 3 październik 2020, 01:17