关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
笔记哥 /
05-25 /
50点赞 /
0评论 /
945阅读
最近,我在做一个我们一个产品的OTA的功能,在调试跟后台对接Json数据的时候,发现序列化的数据一直跟期待的不一致。这让我很纳闷,明明一个简单的序列化和反序列化的问题,怎么数据就不对了。于是乎,就直接导入组件,一步步排查了。
1、由于我是直接调用我们小伙伴的组件,进行Json序列化的,小伙伴的Json 序列化的参数名是调用 System.Text.Json.Serialization.JsonPropertyName 进行Json的一个转义,如下图

2、我查看了我们的下载的组件,由于去年做了一个优化的功能,在Net6以上的版本,用的是
```csharp
using System.Text.Json
```
NetFramework版本,用的是
```csharp
using Newtonsoft.Json;
```

而我当前的项目用的是NetFramework的版本,应该是调用的 Newtonsoft.Json。
调用结果如下图,终于知道问题所在。

由于我们的类里边的转义是调用的System.Text.Json.Serialization.JsonPropertyName,在用 Newtonsoft.Json.JsonConvert.SerializeObject 的时候,是不会被识别并转成序列化属性名参数的字段的
对应的参数如下
**System.Text.Json.Serialization.JsonPropertyName ==> System.Text.Json.JsonSerializer.Serialize**
**Newtonsoft.Json.JsonProperty ==> Newtonsoft.Json.JsonConvert.SerializeObject**
**总结:**
1、在对于序列话和反序列化中,一定要按照一套的序列化方案实现。由于每一个Json序列化的组件都有可能自己定义修改,存在不兼容的问题
2、序列化的协议,和定义的字段,最好跟序列化的字段保持一致,能够避免序列化异常的问题
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/3677
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利
- 相关联分享
- .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- .NET Core中的配置Configuration实战
- 常用的 Visual Studio 2022 扩展插件推荐:生产力必备工具
- 在 .NET 中使用 Sqids 快速的为数字 ID 披上神秘短串,轻松隐藏敏感数字!
- .NET 10 进展之 CoreCLR Interpreter
- 一款基于 .NET 开源、可以拦截并修改 WinSock 封包的 Windows 软件
- 一款 .NET 开源、免费、轻量级且非侵入性的防火墙软件
- 解锁.NET 9性能优化:内存、异步、代码与Web全方位指南
- 使用MCP C# SDK开发MCP Server + Client
- Gradio.Net:加速 .NET 的 Web 应用开发
- Magick.NET 支持100多种格式的强大 .NET 图片处理库
- 2025年C#/.NET/.NET Core优秀项目和框架推荐
- EF Core 10 中 LeftJoin 和 RightJoin 运算符在 LINQ 查询中的应用
- [开源][.Net Framework 4.0] SimpleLiveDataFeed v1.0更新:增加NuGet包
- .NET 10 Preview 4中ASP.NET Core 改进
- ASP.NET Core 实现的领域驱动设计框架推荐
- 如何在 .NET 中 使用 ANTLR4
- 如何把ASP.NET Core WebApi打造成Mcp Server
- .NET 开源工业视觉系统 OpenIVS 快速搭建自动化检测平台
- C#/.NET/.NET Core技术前沿周刊 | 第 39 期(2025年5.19-5.25)
- C# LINQ 快速入门实战指南,建议收藏学习!
- 解决.NET AOT交叉编译到Linux - arm64的坑
- 10年+.NET Coder 心语 ── 单一职责原则的思维:为什么你的代码总在"牵一发而动全身"
- 3款基于.NET开源且免费的远程桌面工具分享
- 深入理解.NET Core中的配置Configuration和应用
- ASP.NET Core EFCore 属性配置与DbContext 详解
- .NET 的全新低延时高吞吐自适应 GC - Satori GC