Xử lý JSON từ httpresponsemessage (C#)

lập trình


Tôi đang cố xử lý dữ liệu JSON mà tôi đã truy xuất từ ​​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);

Khi tôi kiểm tra biến kết quả (ở trên) trong chế độ gỡ lỗi, tôi thấy rằng các mục được liệt kê và có dạng chung này;

[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

Bây giờ tôi cần xem qua danh sách liệt kê và có quyền truy cập vào dữ liệu cơ bản – mã_nhân viên, tên nhân viên, v.v.

Nhưng cho đến nay tất cả những gì tôi có thể làm là truy cập từng “đối tượng” hoàn chỉnh:

C#
IEnumerator enumerator = result.GetEnumerator();

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

Bất kỳ trợ giúp nào đều được đánh giá cao,
Martin

Những gì tôi đã thử:

Tôi đã thử xác định một lớp khớp với dữ liệu JSON nhưng tôi gặp lỗi là nó không thể chuyển đổi nội dung HTTPResponseExample sang lớp đó. (Bây giờ tôi không thể tạo lại lỗi chính xác.)

Giải pháp 1

Có các công cụ giúp bạn chuyển đổi JSON thô thành các lớp C#. Một trong những công cụ tôi sử dụng là Sử dụng JSON: Tạo C#, VB.Net, Bảng SQL và Java từ JSON[^]. Tôi liệt kê thêm trong bài viết của mình: >Làm việc với Newtonsoft.Json trong C# & VB[^] & Làm việc với System.Text.Json trong C#[^]. Tôi cũng thảo luận chi tiết về cách làm việc với việc giải tuần tự hóa dữ liệu JSON.

コメント

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