首页 新闻 会员 周边 捐助

.NET:JsonPatchDocument 如何使用 System.Text.Json

0
悬赏园豆:30 [已解决问题] 解决于 2025-09-07 06:32

今天在将一个 ASP.NET Core 项目从 .NET 6 升级到 .NET 9 遇到的问题

下面的代码中 CamelCasePropertyNamesContractResolver 来自 Newtonsoft.Json.Serialization

var patchDoc = new JsonPatchDocument<BannerAddDto>(
    new List<Operation<BannerAddDto>>
    {
        new("replace", "/image", null, image),
    },
    new CamelCasePropertyNamesContractResolver());

如果换成 System.Text.Json,该用哪个 IContractResolver 实现?

dudu的主页 dudu | 高人七级 | 园豆:24802
提问于:2025-09-06 22:36
< >
分享
最佳答案
0

为什么非要换呢?

1.替换库:

Microsoft.AspNetCore.Mvc.NewtonsoftJson,替换:SystemTextJsonPatch

2.修改:
new CamelCasePropertyNamesContractResolver(),替换成:new() { PropertyNameCaseInsensitive = true }
 
 

 

关于两个JSON库,可以看!
 
 
收获园豆:30
张朋举 | 老鸟四级 |园豆:2051 | 2025-09-06 23:41

的确用 SystemTextJsonPatch 可以解决,SystemTextJsonPatch 是一个开源项目,需要专门安装这个包

dotnet add package SystemTextJsonPatch

命名空间

using Microsoft.AspNetCore.JsonPatch;
using Microsoft.AspNetCore.JsonPatch.Operations;

改成

using SystemTextJsonPatch;
using SystemTextJsonPatch.Operations;
dudu | 园豆:24802 (高人七级) | 2025-09-07 06:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册