使用 Request.CreateResponse() 來建立回應內容

我們當然可以在 Web API 方法中利用 Json.NET 來將物件序列化成 JSON 字串,但這種手動的方式有個缺點:我們的 API 也就只能固定傳回 JSON,而無法由用戶端發送的 HTTP 請求的 Accept 標頭來自動傳回對應之序列化格式。

如果要回傳的內容是自訂型別的物件,而且希望使用 ASP.NET Web API 內建的 content-negotitation 機制,有個方法很好用:Request.CreateResponse() 。以下是個簡單範例:

[HttpGet]
public HttpResponseMessage Get()
{
    var result = new 
    {
        UserName = "Michael",
        City = "Taipei"
    };
    return Request.CreateResponse(HttpStatusCode.OK, result);
}

這寫法要比自己手動序列化物件來得簡潔多了。





資料來源: https://www.huanlintalk.com/2013/01/aspnet-web-api-and-json.html

留言

這個網誌中的熱門文章

[C#]Windows 10 停用與啟用網路卡(連線)[手把手教程][原創]

ASP.NET Web API 將傳回的值轉換從控制器動作至 HTTP 回應訊息的方式。

[C#]程式更改電腦IP位置與電腦名稱