【网络编程】第六章 json(安装+使用)


文章目录


一、json

json安装

下载

复制代码
sudo yum install jsoncpp-devel

json是一个kv键值对的序列化方式

复制代码
{
	"data": "value"
}

头文件#include <jsoncpp/json/json.h>

序列化

c++ 复制代码
void serialize(std::string& out)
{
    Json::Value root;//Value是万能变量
    root["x"] = _x;//序列化的时候会将所有内容转化为字符串
    root["y"] = _y;
    root["op"] = _ops;

    Json::FastWriter writer; // 这个是写成一行
    out = writer.write(root);//返回值string
}

反序列化

c++ 复制代码
bool deserialize( std::string &in)
{
    Json::Value root;
    Json::Reader rd;
    rd.parse(in, root);
    _x = root["x"].asInt();//变成整形
    _y = root["y"].asInt();
    _ops = root["op"].asInt();
}

运行,编译的时候需要指定库名-ljsoncpp

复制代码
g++ -o test test.cc -std=c++11 -ljsoncpp

命令行定义

源文件要用define 这样写#define MY_SELF 1

使用命令行参数方式代替修改源文件中的define,加上-DMY_SELF

复制代码
g++ -DMY_SELF  tcpServer.cpp -o tcpServer -lpthread -ljsoncpp

对应makefile如下修改

makefile 复制代码
.PHONY:all
all:tcpClient tcpServer
Mythod=-DMY_SELF 

tcpClient: tcpClient.cpp
	g++ $(Mythod) -o $@ $^ -std=c++11 -lpthread -ljsoncpp
tcpServer:tcpServer.cpp
	g++ $(Mythod) -o $@ $^ -std=c++11 -lpthread -ljsoncpp

.PHONY:clean
clean:
	rm -f tcpClient tcpServer

使用自己协议

复制代码
Mythod=-DMY_SELF 

使用json,就把后面注释

复制代码
Mythod=#-DMY_SELF

相关推荐
lf132102712 小时前
用 JSON Schema 管装修节点记录:从照片台账到可校验工程数据
网络·数据库·人工智能·经验分享·物联网·json·智能家居
丰锋ff17 小时前
7.2Qt中Json的操作
开发语言·qt·json
bugcome_com1 天前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
ccino .2 天前
awvs_json_word.py 使用说明手册
json·word
richard_yuu2 天前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
用户7783366132112 天前
SERP 返回 JSON 用 Pydantic 强校验:类型安全解析
json
灵析表格3 天前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps
青 春 记 忆3 天前
零基础入门python07:让程序记住数据——JSON文件和异常处理
开发语言·windows·python·json·python3.11
2603_965148113 天前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
鬼手点金3 天前
Scrapy 网络爬虫框架
爬虫·python·scrapy·ajax·html·json·requsts