JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,可以帮助我们进行序列化和反序列化。
jsoncpp 中有一个核心类,两个重要方法
类
==Json::Value ==表示一个JSON对象(是一个键值对的结构,和std::map很相似,可以对象[key]查找值,如果key不存在就新增,key存在就查找)。
方法
Writer::write:把Json对象序列化成字符串(类似std::string)
Reader::parse:把字符串反序列化为Json对象
示例
#include<cstdio>
#include<cstdlib>
#include<jsoncpp/json/json.h>
int main(){
///Json转字符串 /
Json::Value value;
value["dish_id"] = 1;
value["name"] = "红烧肉"; //赋值是什么类型都行
value["price"] = 2000;
//想要将其打印出来我们需要创建一个Writer对象,Writer类只是一个基类,我们用的时候经常用到的是一些他的子类如FastWriter
Json::FastWriter writer;
const std::string& str = writer.write(value);//返回值是json格式的字符串,我们用string接收
printf("%s\n",str.c_str()); //printf("%s\n",str);不能这样写,要将str转为c风格字符串
/字符串转Json///
std::string str2 = R"({"name":"红烧肉","price":100})";
Json::Reader reader;
Json::Value output;
reader.parse(str2,output);
print("%s,%d\n",outputt["name"].asCString(),output["price"].asTnt());
return 0;
}