ASP.NET Web API で JSON を返す方法

ASP.NET Web API で JSON を返す実装例です。

1.WebApiConfig クラス内で “text/html” フォーマットをリターンするようにします。

WebApiConfig.cs
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API の設定およびサービス
...
//json を返す
//https://stackoverflow.com/a/13277616
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new MediaTypeHeaderValue("text/html"));
}
}

2.Request.CreateReponse メソッドに、ステータスコードと、モデルのリストを渡します。すると、クライアントには JSON がリターンされます。

ProductsController.cs
public class ProductsController : ApiController
{
...
public HttpResponseMessage Get()
{
IList<IProduct> products = _rep.GetAll();
//モデルリストから JSON に変換
//Content Negotiation in ASP.NET Web API
//https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation#serialization
return Request.CreateResponse(HttpStatusCode.OK, products);
}
}

💬 コメント