Procesar JSON desde un mensaje httpresponse (C#)

programación

[ad_1]

Estoy intentando procesar datos JSON que recuperé de una 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);

Cuando inspecciono la variable de resultado (arriba) en modo de depuración, veo que las entradas están enumeradas y tienen esta forma general;

[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

Ahora necesito revisar la lista enumerada y obtener acceso a los datos elementales: código_empleado, nombre_empleado, etc.

Pero hasta ahora todo lo que puedo hacer es acceder a cada “objeto” completo:

C#
IEnumerator enumerator = result.GetEnumerator();

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

Cualquier ayuda sería apreciada.
Martín

Lo que he probado:

Intenté definir una clase que coincida con los datos JSON, pero aparece un error que indica que no puede convertir el contenido de HTTPResponseExample a esa clase. (No puedo reproducir el error exacto ahora).

Solución 1

Existen herramientas que le ayudarán a convertir JSON sin formato en clases de C#. Una de mis herramientas de referencia es JSON Utils: genere C#, VB.Net, tabla SQL y Java desde JSON[^]. Enumero más en mis artículos: >Trabajar con Newtonsoft.Json en C# y VB[^] & Trabajar con System.Text.Json en C#[^]. También analizo en detalle cómo trabajar con la deserialización de datos JSON.

[ad_2]

コメント

Título y URL copiados