当前位置: 首页 > news >正文

基于websocket的多用户网页五子棋(二)

一.前期回顾

对于前面内容不太了解的,可以去看一看项目一

https://blog.csdn.net/weixin_60668256/article/details/152404354?fromshare=blogdetail&sharetype=blogdetail&sharerId=152404354&sharerefer=PC&sharesource=weixin_60668256&sharefrom=from_link

二.JsonCpp的介绍和使用

1.JsonCpp的介绍

2.JsonCpp的序列化

#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <jsoncpp/json/json.h>//使用jsoncpp库进行多个数据对象的序列化int main()
{//1. 将需要进行序列化的数据,存储在Json::Value对象中Json::Value root;root[" 姓名 "] = "小明";root[" 年龄 "] = 18;root[" 成绩 "].append(98);root[" 成绩 "].append(88.5);root[" 成绩 "].append(78.5);//2. 实例化一个StreamWriterBuilder工厂类对象Json::StreamWriterBuilder swb;//3. 通过StreamWriterBuilder工厂类对象生产一个StreamWriter对象Json::StreamWriter* sw = swb.newStreamWriter();//4. 使用StreamWriter对象,对Json::Value中存储的数据进行序列化std::stringstream ss;int ret = sw->write(root,&ss);if(ret != 0){std::cout << "json serialize failed!!!" << std::endl;return -1;}std::cout << ss.str() << std::endl;delete sw;return 0;
}

3.JsonCpp的反序列化

void Unserialize(const std::string& str)
{//1.构建一个CharReaderBuilder工厂类Json::CharReaderBuilder crb;//2.使用CharReaderBuilder工厂类,生产出一个CharReader对象Json::CharReader *cr = crb.newCharReader();//3.定义一个Json::Value对象用于存储解析后的数据Json::Value root;std::string err;//4.使用CharReader对象进行Json格式字符串str的反序列化//parse(char* start,char* end,Json::Value* val,string* err);bool ret = cr->parse(str.c_str(),str.c_str() + str.size(),&root,&err);if(ret == false){std::cout << "json unserialize failed: " << err << std::endl;return;}//5.逐个元素去访问Json::Value中的数据std::cout << "姓名: " << root[" 姓名 "].asString() << std::endl;std::cout << "年龄: " << root[" 年龄 "].asInt() << std::endl;int sz = root[" 成绩 "].size();for(int i = 0;i < sz;i++){std::cout << "成绩: " << root[" 成绩 "][i].asFloat() << std::endl;}delete cr;
}

综合代码如下:

"json.cpp"#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <jsoncpp/json/json.h>//使用jsoncpp库进行多个数据对象的序列化std::string Serialize()
{//1. 将需要进行序列化的数据,存储在
http://www.dtcms.com/a/435110.html

相关文章:

  • 第八章 深度学习
  • 免费涨1000粉丝网站多语言建设外贸网站
  • 做外贸的网站平台有哪些网站网页设计代码
  • 深入了解linux网络—— 基于UDP实现翻译和聊天功能
  • 基于高斯函数傅里叶变换的函数傅里叶变换求解(含多项式与三角函数项)
  • 2025,跨领域发展的低门槛技能切入路径
  • 如何通过UKey实现文件加密?——基于硬件密钥的端到端数据保护实战指南
  • 公司建的站加油违法吗网站设计知名企业
  • 张家界网站制作与代运营常州微信网站建设
  • 电影网站建设哪家便宜深圳市做网站公司
  • 实战破解前端渲染:当 Requests 无法获取数据时(Selenium/Playwright 入门)
  • 如何建立小企业网站论坛源码哪个好
  • 网站建设摊销时间是多久seo咨询服务
  • 精细化工企业安全运营:危化品投料记录与反应釜压力实时监控方案
  • 网站的ftp信息推广公司哪里找
  • 【精品资料鉴赏】384页WORD版小学智慧校园项目建设初步设计方案
  • 手机移动网站建设怎么把网站放到服务器
  • 《牛刀小试!C++ string类核心接口实战编程题集》
  • 做视频网站资源采集软件app定制开发
  • 【原创】SpringBoot3+Vue3商品信息管理系统
  • 3 阐述网站建设的步骤过程哪种网站开发简单
  • Spring Boot 热部署配置与自定义排除项
  • B007基于博途西门子1200PLC四节传送带控制系统仿真
  • C++11新特性解析与应用(1)
  • 【LangChain】P7 对话记忆完全指南:从原理到实战(下)
  • 上海建设房屋网站下载好了网站模板怎么开始做网站
  • 远程智能康养实训室:训练学生驾驭物联网,服务未来居家康养新时代
  • ⚡ WSL2 搭建 s5p6818 Linux 嵌入式开发平台(part 1):环境准备与架构设计
  • 学科建设网站wordpress 主体安装
  • 如何免费建立自己的网站中国建设摩托车