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)
posted @ 2021-03-09 16:53  jest549  阅读(1026)  评论(0编辑  收藏  举报