c++ json库

目录

一、前言

二、深度解析序列化和反序列化

🔥引入序列化和反序列化🔥

🔥什么是序列化(Serialization)?🔥

🔥什么是反序列化(Serialization)?🔥

🔥 序列化和反序列化的应用场景🔥

🔥常见的序列化格式🔥

三、JSON的介绍与使用

💧JSON的数据格式💧

💧Jsoncpp库的介绍💧

①:Json::Value 类   -----  中间数据存储类

②:Json::StreamWriter 类   -----  用于数据序列化

③:Json::CharReader  类   -----  用于数据反序列化

💧Json实战应用💧

🥝Json序列化

🍇Json反序列化

四、总结

五、共勉


一、前言

在现代软件开发中,JSON(JavaScript Object Notation)已经成为数据交换的标准格式之一。无论是在前后端通信API 数据传输,还是在配置文件管理中,JSON 的简洁性和可读性使其广泛应用。然而,处理 JSON 数据的关键在于序列化反序列化——将数据结构转换为 JSON 格式,以及将 JSON 格式解析回数据结构。这篇博客将深入探讨 JSON 序列化和反序列化的概念,并通过实例展示如何在 C++ 中高效地处理 JSON 数据。

二、深度解析序列化和反序列化

🔥引入序列化和反序列化🔥

生活中的类比:打包和解包

  • 假设你要寄送一个复杂的玩具给朋友,但这个玩具有很多零件和组件,直接寄送会很麻烦,容易丢失零件,也不方便运输。为了方便,你决定把玩具拆解开来,打包成一个扁平的小盒子,方便运输。

序列化

  • 你把玩具拆解开来,把所有的零件和组件按照一定的顺序放入一个盒子里,并标记好每个零件的位置。这相当于把复杂的对象转化为一个易于存储和传输的格式

反序列化

  • 朋友收到包裹后,根据你的标记把零件重新组装成原来的玩具。这相当于将线性数据转换回原本的对象。

🔥什么是序列化(Serialization)?🔥

序列化是将 数据结构对象 转换成一种可以存储或传输的格式的过程。简单来说,就是把复杂的数据变成一个“线性”的形式(如字符串、二进制数据),这样就可以方便地存储到文件、数据库,或通过网络传输。

🔥什么是反序列化(Serialization)?🔥

反序列化是序列化的逆过程,它将存储或传输的数据格式转换回原本的数据结构或对象。也就是说,通过反序列化,可以从存储或传输的“线性”数据中恢复出原本的对象或数据结构。


🔥 序列化和反序列化的应用场景🔥

数据存储

  • 在数据库中存储对象时,可以先将对象序列化成一个可以存储的格式(如JSON或二进制),存储后再需要时通过反序列化恢复成对象。

网络传输(常用)

  • 在网络通信中,常常需要将对象序列化为字符串或二进制数据,通过网络传输到另一端,然后通过反序列化恢复成对象。

文件存储

  • 例如保存游戏状态时,可以将游戏对象序列化成文件,之后读取文件时再反序列化恢复游戏状态。

🔥常见的序列化格式🔥

JSON(JavaScript Object Notation)通常存储在 Jsoncpp库中

  • 一种基于文本的轻量级数据交换格式,易于阅读和编写。

XML(eXtensible Markup Language)

  • 也是一种基于文本的数据交换格式,广泛用于配置文件和数据交换。

二进制格式

  • 某些应用程序会使用二进制格式进行序列化,因为它更紧凑,效率更高。

三、JSON的介绍与使用

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于数据存储和 网络通信中。为了在C++中处理JSON数据,通常使用一些第三方库,如 JsonCpp 库

💧JSON的数据格式💧

Json 是⼀种数据交换格式,它采⽤完全独⽴于编程语⾔的⽂本格式来存储和表⽰数据。

例如 : 我们想表⽰⼀个同学的学⽣信息

  • C语言代码表示:
char* name = "xax";int age = 18;float score[3] = {
   
   88.5 , 99 , 58};
  • Json****代码表示:
{
   
       "姓名""xas",    "年龄""18",    "成绩" : "[88.5 , 99 , 58]",    "爱好"{
   
                    "书籍""我与地坛",                 "运动""打乒乓球"            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值