C#如何反序列化JSON C#将JSON字符串转换为对象的方法

答案是使用 System.Text.Json 或 Newtonsoft.Json 将 JSON 字符串反序列化为 C# 对象。首先定义属性匹配的类,然后调用 JsonSerializer.Deserialize 或 JsonConvert.DeserializeObject 方法解析字符串,支持嵌套结构与自定义字段映射,推荐 .NET 6+ 项目优先使用 System.Text.Json 以获得更好性能。

c#如何反序列化json c#将json字符串转换为对象的方法

在C#中,将JSON字符串转换为对象的过程称为反序列化。最常用的方式是使用 System.Text.Json(.NET Core 3.0+ 默认推荐)或第三方库如 Newtonsoft.Json(又称 Json.NET)。以下是两种主流方法的详细说明。

使用 System.Text.Json 反序列化 JSON

System.Text.Json 是 .NET 内置的高性能 JSON 操作库,适用于大多数现代 C# 项目。

示例代码:

using System;using System.Text.Json;

// 定义目标类public class Person{public string Name { get; set; }public int Age { get; set; }}

// JSON 字符串string jsonString = @"{""Name"": ""张三"", ""Age"": 30}";

// 反序列化Person person = JsonSerializer.Deserialize(jsonString);

Console.WriteLine(person.Name); // 输出:张三Console.WriteLine(person.Age); // 输出:30

注意:属性名默认需与 JSON 字段匹配(大小写敏感)。可使用 [JsonPropertyName] 特性自定义映射。

使用 Newtonsoft.Json 反序列化 JSON

Newtonsoft.Json 功能更灵活,支持老版本 .NET Framework,广泛用于现有项目。

安装 NuGet 包:

Install-Package Newtonsoft.Json

示例代码:

using Newtonsoft.Json;

string jsonString = @"{""Name"": ""李四"", ""Age"": 25}";

JSON.NET 简单的使用 中文WORD版
JSON.NET 简单的使用 中文WORD版

本文档主要讲述的是JSON.NET 简单的使用;JSON.NET使用来将.NET中的对象转换为JSON字符串(序列化),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

JSON.NET 简单的使用 中文WORD版 0
查看详情 JSON.NET 简单的使用 中文WORD版

Person person = JsonConvert.DeserializeObject(jsonString);

Console.WriteLine(person.Name); // 输出:李四

特性支持:使用 [JsonProperty(“xxx”)] 指定字段名。支持复杂类型、日期格式、空值处理等高级配置。

处理嵌套对象和数组

无论是 System.Text.Json 还是 Newtonsoft.Json,都可以自动处理嵌套结构。

public class Address{    public string City { get; set; }    public string Street { get; set; }}

public class Person{public string Name { get; set; }public Address HomeAddress { get; set; }}

string json = @"{""Name"": ""王五"",""HomeAddress"": {""City"": ""北京"",""Street"": ""朝阳路123号""}}";

Person p = JsonSerializer.Deserialize(json);Console.WriteLine(p.HomeAddress.City); // 输出:北京

常见问题与建议

确保类的属性是 public 且有 getter/setter。JSON 中字段不存在时,对应属性为默认值(如 null、0),不会报错。遇到反序列化失败,检查字段名拼写、数据类型是否匹配。.NET 6+ 推荐优先使用 System.Text.Json,性能更好。

基本上就这些。根据项目环境选择合适的库即可完成 JSON 到对象的转换。

以上就是C#如何反序列化JSON C#将JSON字符串转换为对象的方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1442068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 18:42:12
下一篇 2025年12月17日 18:42:18

相关推荐

发表回复

登录后才能评论
关注微信