C# JSON 序列化与反序列化:Newtonsoft.Json 用法

简介: JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。

JSON 是前后端数据交互的常用格式,Newtonsoft.JsonJson.NET)是 C# 中最流行的 JSON 处理库。

案例:JSON 工具类(需安装 Newtonsoft.Json 包)

using Newtonsoft.Json;
// 定义实体类
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Email { get; set; }
}
public class JsonHelper
{
    // 对象序列化为JSON字符串
    public static string Serialize(object obj)
    {
        // 格式化输出(便于阅读)
        return JsonConvert.SerializeObject(obj, Formatting.Indented);
    }
    // JSON字符串反序列化为对象
    public static T Deserialize<T>(string json)
    {
        if (string.IsNullOrEmpty(json)) return default(T);
        return JsonConvert.DeserializeObject<T>(json);
    }
}
// 调用示例
// 序列化
User user = new User
{
    Id = 1,
    Name = "张三",
    Age = 25,
    Email = "zhangsan@example.com"
};
string json = JsonHelper.Serialize(user);
Console.WriteLine("序列化结果:");
Console.WriteLine(json);
// 反序列化
string jsonStr = @"{
  ""Id"": 2,
  ""Name"": ""李四"",
  ""Age"": 30,
  ""Email"": ""lisi@example.com""
}";
User deserializedUser = JsonHelper.Deserialize<User>(jsonStr);
Console.WriteLine("\n反序列化结果:");
Console.WriteLine($"ID:{deserializedUser.Id},姓名:{deserializedUser.Name}");
安装方式:NuGet 搜索 Newtonsoft.Json 并安装。
相关文章
|
2天前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
Java Serverless Spring
org.springframework.boot.loader.JarLaunche
org.springframework.boot.loader.JarLaunche
1237 3
(续集)记录2分钟破解知识星球验证弹窗
那我换个思路,反正网站简单,这次直接用替换的方式
2108 0
|
安全 网络安全 开发工具
git 提示:fatal: Could not read from remote repository.
git 提示:fatal: Could not read from remote repository.
2034 0
git 提示:fatal: Could not read from remote repository.
|
11月前
|
开发框架 安全 .NET
掌握 LINQ:通过示例解释 C# 中强大的 LINQ的集运算
通过本文的示例,我们详细介绍了C#中LINQ的强大集合运算功能。LINQ提供了一种简洁、灵活和类型安全的方式来查询和操作数据集合,从而大大提高了代码的可读性和可维护性。希望本文能帮助读者更好地掌握和应用LINQ,提高开发效率。
307 13
|
JavaScript 前端开发 Java
|
Ubuntu Linux
ubuntu22.04禁止自动休眠的几种方式
在Ubuntu 22.04中禁用自动休眠可以通过多种方法实现,用户可以根据自己的技术水平和需求选择合适的方法。无论是通过图形界面还是命令行,都可以有效地防止系统进入自动休眠状态,确保长时间运行的任务不受干扰。通过理解和应用这些设置,可以更好地管理Ubuntu系统的电源行为,提高工作效率和系统稳定性。
4800 4
|
存储 XML JSON
解锁Winform应用全球化:高效实现多语言处理的实战案例与技巧,让你的软件跨越语言障碍
【8月更文挑战第3天】随着全球化的推进,软件需支持多语言以满足国际用户需求。在Winform中,通过精心设计和工具辅助可简化多语言实现。本文以一个支持中、英、日、韩四语的应用为例,介绍如何使用JSON文件存储语言资源,并借助自定义类库动态加载和切换语言。通过准备不同语言的JSON文件、编写`LanguageHelper`类管理和更新UI文本,以及在配置文件中保存用户语言偏好等步骤,展示了实现多语言支持的有效途径。此方案不仅结构清晰,而且易于维护和扩展。
487 2
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
858 6
|
存储 Java 对象存储
当hashCode相同时,equals是否也相同?
当hashCode相同时,equals是否也相同?
214 0

热门文章

最新文章