web-dev-qa-db-ja.com

ObjectResultとJsonResultの違いは何ですか

Microsoft.AspNetCore.Mvc名前空間には2つのクラスがあります。

ObjectResultおよびJsonResult

どちらも返されたオブジェクトをJSON形式で変換します。

それらの違いは何ですか?それらを使用する目的は何ですか?

26
hcp

JsonResultは、指定されたオブジェクトをJSONとしてフォーマットするIActionResultです

ObjectResultは、コンテンツネゴシエーションが組み込まれているIActionResultです。

応答ストリームへの書き込みを担当するExecuteResultAsync内で、フレームワークは使用可能なフォーマッターを調べて、関連するフォーマッターを選択します。

フォーマッタを選択するためのロジックは、ASP.NET Web APIのロジックと似ており、次の優先順位に基づいています。

  • ヘッダーを受け入れる
  • Content-Typeヘッダー
  • タイプ一致に基づく選択

OkObjectResultクラス

Microsoft.AspNetCore.Mvc.ObjectResult実行すると、コンテンツネゴシエーションを実行し、エンティティ本体をフォーマットし、Microsoft.AspNetCore.Http.StatusCodes.Status200OKネゴシエーションとフォーマットが成功した場合の応答。

参照:

43
Nkosi