查看您的代码,我假设您的应用程序应该是一个需要返回某种以 JSON 序列化的数据的服务。
好消息是 ASP.NET Core 已经包含一个数据序列化器,可以为您完成这项工作。
您可能需要根据自己的需要进行设置。
例如,假设以下数据类:
public class Data {
public string Name { get; }
public string Value { get; }
public bool IsValid { get; }
public Data(string name, string value, bool isValid) {
Name = name;
Value = value;
IsValid = isValid;
}
}
然后在你的Controller中使用以下方法:
public async Task<IActionResult> Get() {
var data = new Data("sample name", "this is a value", true);
return Ok(data);
}
会返回:
{
"name": "sample name",
"value": "this is a value",
"isValid": true
}
即使认为标准序列化行为可能适合非常简单的实现,您可能需要更多地控制您的应用程序应如何序列化(和反序列化)不同数据类型,尤其是当这些数据类型与您想要的方式不完全匹配时将数据呈现给客户端。在这种情况下,您可能需要使用Custom Converters。
您可以在设置 MVC 时在 ConfigureServices(IServiceCollection services) 方法中进行配置:
// Add framework services.
services.AddMvc().AddJsonOptions(jo => {
// sample serialiser setup
jo.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
jo.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
jo.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Error;
// custom Converters
jo.SerializerSettings.Converters.Add(new MyCustomConverter());
});
Here您可以阅读并了解有关如何设置和使用自定义转换器的更多信息。