ASP.NET Core MVC 默认会将响应序列化为 JSON 格式,其内部使用的是 Newtonsoft.Json 库。可以通过以下方法自定义 JSON 序列化设置:
services.AddControllers().AddNewtonsoftJson(options =>
{
// 设置 JSON 序列化选项
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
在该代码块中,我们指定了日期格式和如何处理 null 值。
public IActionResult Get()
{
var user = new { Name = "Tom", Age = 18 };
return Ok(user);
}
该方法返回一个包含 Name 和 Age 属性的匿名对象 user,该对象会自动序列化为 JSON 格式。
public class User
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("age")]
public int Age { get; set; }
}
在该模型类上使用 [JsonProperty] 特性,指定了生成的 JSON 字段名为 name 和 age。
通过以上方法,可以自定义 ASP.NET Core MVC 的 JSON 序列化选项,以及对控制器返回的对象进行序列化设置。