netcore 3+中,JsonProperty特性失效,使用JsonProperty重命名字段名称
在我们之前常用的JsonProperty特性中,突然不再生效。查阅相关资料后发下:
之前版本中,netocre默认使用Newtonsoft.Json作为Json解析器,在3.0不再是默认,而是使用System.Text.Json替换Newtonsoft.Json
如继续使用Newtonsoft.Json作为Json解析器,
- 安装Nuget
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
Install-Package Newtonsoft.Json
- 注册服务
services.AddControllers().AddNewtonsoftJson();
- 使用JsonProperty重命名字段名称
public class WeatherForecast {
// [JsonPropertyName("date123456")] 使用System.Text.Json 请看参考文章
public DateTime Date { get; set; }
[JsonProperty("TempC")]
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
但是这个地方有个问题,Newtonsoft.Json 在常规Controllers中写是可以正常如上使用的,但是在.NET6的Mini API中不起作用
app.MapGet("/", () => {
string [] _summaries = new []
{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};
return Enumerable.Range(1, 5)
.Select(index => new WeatherForecast {
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = _summaries [Random.Shared.Next(_summaries.Length)]
}).ToArray();
});
例如如上代码无法将字段 TemperatureC =》 TempC 返回,System.Text.Json是可以的
哪位有Newtonsoft.Json的解决办法,麻烦@一下
分类:
.NET CORE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)