如何在MVC4中将Json字符串输出为JsonResult?

lon*_*gda 27 c# asp.net-mvc serialization json deserialization

这看起来很简单,我必须过度思考它.

TL; DR;

如何修改下面的代码以返回包含在字符串中的json对象而不是恰好包含json的字符串?

public ActionResult Test()
{
  var json_string = "{ success: \"true\" }";
  return Json(json_string, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

此代码返回包含json的字符串文字:

"{ success: "true" }"
Run Code Online (Sandbox Code Playgroud)

但是,我希望它返回字符串中包含的json:

{ success: "true" }
Run Code Online (Sandbox Code Playgroud)

版本略长

我正在尝试快速创建一些外部api调用的原型,并且只想通过我的"api"将这些结果作为现在的假响应传递.json对象非常重要 - 大约10,000"行"或90KB.我不想为这个json响应的所有内容创建一个强类型对象,因此我可以通过反序列化器运行它 - 所以这样就完成了.

所以我控制器的基本逻辑是:

  1. 调用externall api
  2. 将Web请求的字符串结果存储到var中(参见上面的json_string)
  3. 使用JsonResult生成方法Json()将这些结果输出为json(不是字符串)

非常感谢任何帮助......心灵正在融化.

SLa*_*aks 47

在整点Json()的helper方法是序列化JSON作为.

如果要返回原始内容,请直接执行此操作:

return Content(jsonString, "application/json");
Run Code Online (Sandbox Code Playgroud)


And*_*NET 43

public ActionResult Test()
{
  return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以将JsonResult设置为返回类型而不是ActionResult. (4认同)