C#中JSON字符串类型与对象类型相互转换实现方式

 更新时间:2025年06月03日 09:23:50   作者:qq_38151300  
这篇文章主要介绍了C#中JSON字符串类型与对象类型相互转换实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、序列化

把对象转化为可传输的字节序列(字符串)过程称为序列化。

  • 反序列化:把字节序列(字符串)转换为对象的过程称为反序列化。
  • 目的(作用):传输数据。

二、使用Newtonsoft.Json库(也称为Json.NET)进行序列化和反序列化操作

首先需要安装该库,可以通过NuGet包管理器或者手动下载并添加引用来完成。

  • 然后按照以下示例代码进行转换:
using Newtonsoft.Json; // 导入命名空间

// JSON字符串
string json = “{“name”:“John”, “age”:30}”;

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

// 将JSON字符串转换为对象
Person person = JsonConvert.DeserializeObject(json);
// 将对象转换为JSON字符串
string str = JsonConvert.SerializeObject(对象名);

Console.WriteLine(person.Name); // 输出 John
Console.WriteLine(person.Age); // 输出 30

三、使用内置的System.Text.Json库进行序列化和反序列化操作

这是从.NET Core 3.0开始提供的新功能,无需额外安装任何库。

  • 按照以下示例代码进行转换:
using System.Text.Json; // 导入命名空间

// JSON字符串
string json = “{“name”:“John”, “age”:30}”;

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

// 将JSON字符串转换为对象
var options = new JsonSerializerOptions();
options.PropertyNameCaseInsensitive = true; // 设置属性不区分大小写
Person person = JsonSerializer.Deserialize(json, options);

Console.WriteLine(person.Name); // 输出 John
Console.WriteLine(person.Age); // 输出 30

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#利用反射技术实现去掉按钮选中时的边框效果

    C#利用反射技术实现去掉按钮选中时的边框效果

    这篇文章主要介绍了C#利用反射技术实现去掉按钮选中时的边框效果,涉及C#针对窗口的参数设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#多线程用法详解

    C#多线程用法详解

    本文详细讲解了C#多线程用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C# 改变无边框窗体尺寸大小的方法

    C# 改变无边框窗体尺寸大小的方法

    这篇文章介绍了C# 改变无边框窗体尺寸大小的方法,有需要的朋友可以参考一下
    2013-10-10
  • C#实现打开画图的同时载入图片、最大化显示画图窗体的方法

    C#实现打开画图的同时载入图片、最大化显示画图窗体的方法

    这篇文章主要介绍了C#实现打开画图的同时载入图片、最大化显示画图窗体的方法,涉及C#针对窗体及图片操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#实现数据包加密与解密实例详解

    C#实现数据包加密与解密实例详解

    这篇文章主要介绍了C#实现数据包加密与解密的方法,是一项很实用的技能,需要的朋友可以参考下
    2014-07-07
  • c# 使用异步编程的方法

    c# 使用异步编程的方法

    这篇文章主要介绍了c# 使用异步编程的方法,文中讲解非常细致,帮助大家更好的理解c# 异步编程,感兴趣的朋友可以了解下
    2020-08-08
  • C#使用二维数组模拟斗地主

    C#使用二维数组模拟斗地主

    这篇文章主要介绍了C#使用二维数组模拟斗地主的方法,通过C#的二维数组简单实现扑克随机发牌的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#中各种泛型集合的使用方法总结

    C#中各种泛型集合的使用方法总结

    这篇文章介绍了C#各种泛型集合的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • C#日期格式强制转换方法(推荐)

    C#日期格式强制转换方法(推荐)

    下面小编就为大家分享一C#日期格式强制转换的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C# 构造函数如何调用虚方法

    C# 构造函数如何调用虚方法

    这篇文章主要介绍了C# 构造函数如何调用虚方法,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论