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;
}
我正在构建一个 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;
}