Asp.net-Mvc

ASP.Net MVC:如何基於原始 Json 數據創建 JsonResult

  • March 1, 2018

包含以下原始Jsonstring數據(為了問題而簡化):

 var MyString =  "{ 'val': 'apple' }";

我怎樣才能創建一個JsonResult代表的對象MyString

我嘗試使用 Json(object) 方法。但它將原始 json 數據處理為一個字元串 - 邏輯上:P-。所以返回的 HTTP 響應如下所示:

"{ 'val': 'apple' }"

而不是給定的原始 Json 數據:

{ 'val': 'apple' }

這就是我想要實現的目標

Json()onController方法實際上是一個幫助方法,它創建一個新的JsonResult. 如果我們查看這個類的原始碼*,我們可以看到它並沒有真正做那麼多 - 只是將內容類型設置為application/json,使用 a 序列化您的數據對象JavaScriptSerializer,然後將其寫入結果字元串。您可以複製這個行為(減去序列化,因為您已經這樣做了),ContentResult而是從控制器返回 a 。

public ActionResult JsonData(int id) {
   var jsonStringFromSomewhere = "{ 'val': 'apple' }";
   // Content() creates a ContentResult just as Json() creates a JsonResult
   return Content(jsonStringFromSomewhere, "application/json");
}

*從 MVC2 開始,JsonResult如果使用者發出 HTTP GET 請求(而不是 POST),也會引發異常。允許使用者使用 HTTP GET 檢索 JSON 具有安全隱患,在您在自己的應用程序中允許這樣做之前,您應該注意這一點。

引用自:https://stackoverflow.com/questions/3991751