Return JSON 来自 Api 控制器的结果

Return JSON Result from an Api Controller

我正在构建一个 Api 控制器,我需要将我的列表序列化为 JSON 作为我的操作 result.but 似乎这样的语句不起作用

 return Json(data, JsonRequestBehavior.AllowGet);

我怎样才能做到这一点?

您是否尝试过使用 JSON 序列化 class?

我已经成功地使用了这篇文章中提出的想法: Serializing a list to JSON

或者,如果您不想使用序列化,则在 MSDN 中使用 JSON 的操作结果示例仅使用通用列表对象。

正如您提到的,您正在使用 WEB API,我假设它配置了 JsonFormatter。话虽如此,将您的操作结果转换为 JSON 的责任不是您的操作,而是来自作为内容协商过程的一部分选择的媒体类型格式化程序。

也就是说,您的 Action return 实际列表类型和 Web API 媒体类型格式化程序将负责将其格式化为 JSON。

例如,假设 data 是一个 List<Foo>,其中 Foo 是您创建的某种类型。您的控制器操作就足够了:

public List<Foo> GetFoo()
{
    var data = GetListOfFoo();
    return data;
}