json11 c++ 用法

来源:互联网 发布:光环国际教育 大数据 编辑:程序博客网 时间:2024/06/16 00:20

json11 这个库是这两天看上去很好用的一个库,现在给出简单的用法,详细说明看官网

1. json 生成

        // 生成 json

        json11::Json my_json =json11::Json::object {

            { "key1","value1" },

            { "key2",false },

            { "key3", json11::Json::array { 1, 2, 3 } },

        };

        

        std::string json_str = my_json.dump();

        int a = 0;

        

        // stl data struct create json items.

        std::list<int> l1 { 1, 2, 3 };

        std::vector<int> l2 { 1, 2, 3 };

        std::set<int> l3 { 1, 2, 3 };

        

        std::map<std::string,std::string> m1 { {"k1", "v1" }, {"k2","v2" } };

        std::string ss =json11::Json(m1).dump();

        int ab = 0;

2. json 解析

    // 解析数据

    {

        conststd::string simple_test = R"( {"k1":"v1", "k2":42, "k3":["a",123,true,false,null]} )";

        

        std::string err;

        constauto json =json11::Json::parse(simple_test, err);

        

        std::cout <<"k1: " << json["k1"].string_value() <<"\n";

        std::cout <<"k3: " << json["k3"].dump() <<"\n";

        

        for (auto &k : json["k3"].array_items() )

        {

            std::cout <<"    - " << k.dump() <<"\n";

        }

    }


0 0