ASP.Net MVC:如何基于原始Json数据创建JsonResult

SDR*_*yes 10 asp.net-mvc serialization json jsonresult

具有string包含以下原料的JSON数据(简化为问题的缘故):

  var MyString =  "{ 'val': 'apple' }";
Run Code Online (Sandbox Code Playgroud)

如何创建表示JsonResult对象MyString

我试图使用Json(对象)方法.但它将原始json数据作为字符串处理 - 逻辑:P-.所以返回的HTTP响应如下所示:

"{ 'val': 'apple' }"
Run Code Online (Sandbox Code Playgroud)

而不是给定的原始Json数据:

{ 'val': 'apple' }
Run Code Online (Sandbox Code Playgroud)

这就是我想要实现的目标:

Bra*_*bby 24

Json()对方法Controller实际上是创建一个新的辅助方法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");
}
Run Code Online (Sandbox Code Playgroud)

*从MVC2开始,JsonResult如果用户正在发出HTTP GET请求(而不是POST),也会抛出异常.允许用户使用HTTP GET检索JSON具有安全隐患,在您在自己的应用程序中允许此操作之前,您应该注意这一点.

  • +1 - 但是根据http://json.org,键和值需要用双引号括起来而不是单引号. (2认同)