Traiter JSON à partir d’un message httpresponsemessage (C#)

la programmation


J’essaie de traiter les données JSON que j’ai récupérées à partir d’une API Web.

C#
HttpResponseMessage response = await client.PostAsJsonAsync(
                   "api/my_report", report_request);

response.EnsureSuccessStatusCode();

var content = await response.Content.ReadAsByteArrayAsync();
var options = new JsonSerializerOptions() { PropertyNameCaseInsensitive = true };
var result = JsonSerializer.Deserialize<ienumerable>(content, options);

Lorsque j’inspecte la variable de résultat (ci-dessus) en mode débogage, je vois que les entrées sont énumérées et ont cette forme générale ;

[0] ValueKind = Object : "{"employee_code":"OU812","employee_name":"Alex","work_date":"2024-02-01","manager_name":"Eddie","manager_code":"5150","worked_hours":1,"division":"ROCK"}"

[1] ValueKind = Object : "{"employee_code":"5309","employee_name":"Jenny","work_date":"2024-02-01","manager_name":"Tutone","manager_code":"867","worked_hours":5,"division":"80S ROCK"}"
...etc

Je dois maintenant parcourir la liste énumérée et accéder aux données élémentaires – Employee_code, Employee_name, etc.

Mais jusqu’à présent, tout ce que je peux faire est d’accéder à chaque “objet” complet :

C#
IEnumerator enumerator = result.GetEnumerator();

int n = 0;
while (enumerator.MoveNext() && n < 5)
{
   Console.WriteLine(enumerator.Current);
   n++;
}

Toute aide serait appréciée,
Martin

Ce que j’ai essayé :

J’ai essayé de définir une classe qui correspond aux données JSON, mais j’obtiens une erreur indiquant qu’elle ne peut pas convertir le contenu HTTPResponseExample en cette classe. (Je ne peux pas reproduire l’erreur exacte maintenant.)

Solution 1

Il existe des outils pour vous aider à convertir du JSON brut en classes C#. L’un de mes outils préférés est Utilitaires JSON : générer C#, VB.Net, SQL Table et Java à partir de JSON[^]. J’en liste plus dans mes articles : >Travailler avec Newtonsoft.Json en C# et VB[^] & Travailler avec System.Text.Json en C#[^]. J’explique également en détail comment travailler avec la désérialisation des données JSON.

コメント

タイトルとURLをコピーしました