معالجة JSON من رسالة httpresponsemesage (C#)


أحاول معالجة بيانات JSON التي استردتها من واجهة برمجة تطبيقات الويب.

ج #
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

أحتاج الآن إلى الاطلاع على القائمة المذكورة والوصول إلى البيانات الأولية – كود_الموظف، واسم_الموظف، وما إلى ذلك.

ولكن حتى الآن كل ما يمكنني فعله هو الوصول إلى كل “كائن” كامل:

ج #
IEnumerator enumerator = result.GetEnumerator();

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

سيكون موضع تقدير أي مساعدة،
مارتن

ما حاولت:

لقد حاولت تحديد فئة تتطابق مع بيانات JSON ولكني تلقيت خطأً مفاده أنه لا يمكن تحويل محتوى HTTPResponseExample إلى تلك الفئة. (لا يمكنني إعادة إنتاج الخطأ الدقيق الآن.)

الحل 1

هناك أدوات تساعدك على تحويل JSON الخام إلى فئات C#. إحدى أدواتي المفضلة هي JSON Utils: قم بإنشاء C# وVB.Net وSQL Table وJava من JSON[^]. أدرج المزيد في مقالاتي: >العمل مع Newtonsoft.Json في C# وVB[^] & العمل مع System.Text.Json في C#[^]. أناقش أيضًا بالتفصيل كيفية العمل مع إلغاء تسلسل بيانات JSON.

コメント

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