json for modern c++库的简单使用
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)