文章目录
Json工具类的介绍
主要是对数据进行序列化和反序列化,Json工具类没有成员变量,只设计了成员函数.
这里用到了第三方库Jsoncpp
成员函数
Serialize(序列化)
cpp
static bool Serialize(const Json::Value &root, std::string *str)
{
//1.创建Json::StreamWriterBuilder对象
Json::StreamWriterBuilder swb;
//2.创建Json::StreamWriter指对象针
std::unique_ptr<Json::StreamWriter> sw(swb.newStreamWriter());
//3.序列化Json::Value数据
std::stringstream ss;//输出型参数
int ret = sw->write(root, &ss);
if(ret != 0)
{
std::cout << "Serialize failed" << std::endl;
return false;
}
//4.str输出型参数,将序列化后数据给str
*str = ss.str();
return true;
}
UnSerialize(反序列化)
cpp
static bool UnSerialize(const std::string &str, Json::Value *root)
{
//1.创建Json::CharReaderBuilder对象
Json::CharReaderBuilder crb;
//2.创建Json::CharReader对象指针
std::unique_ptr<Json::CharReader> cr(crb.newCharReader());
//3.反序列化str数据
//Json::Value *root输出型参数,序列化后的数据放入其中
std::string errs;//输出型参数,用于判断parse出错原因
bool ret = cr->parse(str.c_str(), str.c_str() + str.size(), root, &errs);
if(ret == false)
{
std::cout << "UnSerialize failed " << errs << std::endl;
return false;
}
return true;
}