【解決方法】httpresponsemessage からの JSON の処理 (C#)

プログラミングQA


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

次に、列挙リストを調べて、employee_code、employee_name などの要素データにアクセスする必要があります。

しかし、今のところ私にできることは、完全な「オブジェクト」にアクセスすることだけです。

C#
IEnumerator enumerator = result.GetEnumerator();

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

助けていただければ幸いです。
マーティン

私が試したこと:

JSON データに一致するクラスを定義しようとしましたが、HTTPResponseExample コンテンツをそのクラスに変換できないというエラーが発生しました。 (現在、正確なエラーを再現することはできません。)

解決策 1

生の JSON を C# クラスに変換するのに役立つツールがあります。 私がよく使うツールの 1 つは、 JSON ユーティリティ: JSON から C#、VB.Net、SQL テーブル、Java を生成[^]。 私の記事ではさらに詳しくリストします: >C# および VB で Newtonsoft.Json を操作する[^] & C# での System.Text.Json の操作[^]。 また、JSON データの逆シリアル化の操作方法についても詳しく説明します。

コメント

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