GitHub开源项的地址:https://github.com/nlohmann/json
json for modern c++是一个德国大牛nlohmann写的,该版本的json有以下特点:
1.直观的语法。
2.整个代码由一个头文件组成json.hpp,没有子项目,没有依赖关系,没有复杂的构建系统,使用起来非常方便。
3.使用c++11标准编写。
4.使用json 像使用STL容器一样。
5.STL和json容器之间可以相互转换。
使用可以参照github的ReadMe文档。
1.包含头文件
#include <nlohmann/json.hpp>
// for convenience
using json = nlohmann::json;
使用g++编译时,需要加上 -std=c++11
2.初始化时可以这样。
json j_test;
j_test={
{"H", {
{"I","12345678"},
{"J",12345}
}
},
{"S",1},
{"K",
{
{"K1",11},
{"K2",11}
}
}
};
3.单独赋值
j_test["H"]=12345;
j_test["H"]["I"]="12345678";
j_test["H"]["J"]=123456;
j_test["h"][0]={"h0",123,"h1",456};
j_test["h"][0]["hh"]=123;
j_test["h"][0]["hhh"]=456;
j_test["H"]={{"I",1234}};
std::string temp_str=j_test["H"]["I"];
int temp_int= j_test["H"]["J"];
4.序列化与反序列化 //序列化
std::string str_data=j_test.dump();//j_test。dump(4); char buf[2048]; memcpy(buf,str_data.c_str(),str_data.length());
//反序列化 j_test=json::parse(buf);
//std::string str_data=j_test.dump(4);
j_test.dump(2)