处理来自 httpresponsemessage 的 JSON (C#)

编程


我正在尝试处理从 Web API 检索到的 JSON 数据。

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);

当我在调试模式下检查结果变量(上面)时,我看到条目被枚举并具有这种通用形式;

[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

我现在需要遍历枚举列表并访问基本数据 – 员工代码、员工名称等。

但到目前为止我所能做的就是访问每个完整的“对象”:

C#
IEnumerator enumerator = result.GetEnumerator();

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

任何帮助将不胜感激,
马丁

我尝试过的:

我尝试定义一个与 JSON 数据匹配的类,但收到错误消息,指出它无法将 HTTPResponseExample 内容转换为该类。 (我现在无法重现确切的错误。)

解决方案1

有一些工具可以帮助您将原始 JSON 转换为 C# 类。 我的首选工具之一是 JSON Utils:从 JSON 生成 C#、VB.Net、SQL 表和 Java[^]。 我在我的文章中列出了更多内容: >在 C# 和 VB 中使用 Newtonsoft.Json[^] & 在 C# 中使用 System.Text.Json[^]。 我还详细讨论了如何使用反序列化 JSON 数据。

コメント

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