具有string包含以下原始Json数据(为方便起见,已将其简化):
string
var MyString = "{ 'val': 'apple' }";
如何创建一个JsonResult表示的对象MyString?
JsonResult
MyString
我试图使用Json(object)方法。但是它将原始json数据作为字符串-逻辑上:P-处理。因此,返回的HTTP响应如下所示:
"{ 'val': 'apple' }"
而不是给定的原始Json数据:
{ 'val': 'apple' }
这是我想要实现的目标 :
上的Json()方法Controller实际上是创建新的辅助方法JsonResult。如果我们查看此类* 的源代码,我们会发现它实际上并没有做太多的工作- 只需将内容类型设置为application/json,使用来序列化数据对象JavaScriptSerializer,然后将其写入结果字符串即可。行为(减去序列化,因为您已经完成了),ContentResult而是从控制器返回a 。
Json()
Controller
application/json
JavaScriptSerializer
ContentResult
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具有安全隐患,在您自己的应用程序中允许这样做之前,应注意安全隐患。