32

这看起来很简单,我一定是想多了。

TL;博士;

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

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

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

"{ success: "true" }"

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

{ success: "true" }

稍长的版本

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

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

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

非常感谢任何帮助......头脑正在融化。

4

2 回答 2

53

Json()辅助方法的重点是序列化为 JSON。

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

return Content(jsonString, "application/json");
于 2013-08-23T18:54:53.837 回答
46
public ActionResult Test()
{
  return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
于 2013-08-23T18:55:04.953 回答