笔记参考腾讯课堂施磊老师课程:C++实现集群聊天服务器
文章目录
- 技术栈
- 项目需求
- 项目目标
- 开发环境
- 配置远程开发环境
- 下载
- Json介绍
- 一个优秀的Json三方库
- 包含Json头文件
- Json数据序列化
- 1. 普通数据序列化
- 2. 容器序列化
https://blog.csdn.net/QIANGWEIYUAN/article/details/89023980
windows+vscode配置远程linux开发环境
参考博客:https://blog.csdn.net/qq756684177/article/details/94236990
VS环境创建远程linux跨平台项目
参考博客:https://blog.csdn.net/QIANGWEIYUAN/article/details/89469717
vscode在linux环境下直接开发
网络搜索关键词
链接: https://pan.baidu.com/s/1kXyXy5ct1OmIxu8uSfjS1g
提取码: 13gi
Json是一种轻量级的数据交换格式(也叫数据序列化方式)。Json采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 Json 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON for Modern C++
是一个由德国大牛 nlohmann 编写的在 C++ 下使用的 JSON 库。
具有以下特点:
json.hpp
,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便在网络中,常用的数据传输序列化格式有 XML、Json、ProtoBuf,在公司级别的项目中,大量的在使用 ProtoBuf 作为数据系列化的方式,以其数据压缩编码传输,占用带宽小,同样的数据信息,是 Json 的 1/10,XML 的 1/20,但是使用起来比 Json 稍复杂一些,所以项目中我们选择常用的 Json 格式来打包传输数据。
下面列举一些项目中用到的有关 Json 数据的序列化和反序列化代码,仅供参考!JSON for ModernC++这个三方库的使用非常简单,如下所示:
#include "json.hpp"
using json = nlohmann::json;
就是把我们想要打包的数据或者对象,直接处理成 Json 字符串。
json js;
// 添加数组
js["id"] = {1,2,3,4,5};
// 添加key-value
js["name"] = "zhang san";
// 添加对象
js["msg"]["zhang san"] = "hello world";
js["msg"]["liu shuo"] = "hello china";
// 上面等同于下面这句一次性添加数组对象
js["msg"] = {{"zhang san", "hello world"}, {"liu shuo", "hello china"}};
cout << js << endl; //string sendBuf = js.dump(); 将json数据对象序列化成json字符串sendBuf
//cout << sendBuf.c_str() << endl;
上面js对象的序列化结果是:
{"id":[1,2,3,4,5],"msg":{"liu shuo":"hello china","zhang san":"hello world"},"name":"zhang san"}