一个用于C++11的小型JSON库。
json11 是一个用于 C++11 的微型 JSON 库,提供 JSON 解析和序列化功能。
该库提供的核心对象是 json11::Json。一个 Json 对象可以表示任何 JSON 值:null、布尔值、数字(int 或 double)、字符串(std::string)、数组(std::vector)或对象(std::map)。
Json 对象的行为类似于值。它们可以被赋值、复制、移动、比较相等性或顺序,等等。还有辅助方法 Json::dump,用于将 Json 序列化为字符串,以及 Json::parse(静态方法),用于将 std::string 解析为 Json 对象。
使用 C++11 新的初始化语法,很容易创建一个 JSON 对象:
Json my_json = Json::object { { "key1", "value1" }, { "key2", false }, { "key3", Json::array { 1, 2, 3 } }, }; std::string json_str = my_json.dump(); 还有一些隐式构造函数,允许标准类型和用户自定义类型进行转换。 自动转换为JSON。例如: class Point { 公共: int x; int y; Point (int x, int y) : x(x), y(y) {} Json to_json() const { return Json::array { x, y }; } }; std::vector points = { { 1, 2 }, { 10, 20 }, { 100, 200 } }; std::string points_json = Json(points).dump(); JSON 值可以被查询和检查:
Json json = Json::array { Json::object { { "k", "v" } } }; std::string str = json[0]["k"].string_value(); 更多文档请参阅 json11.hpp。
暂无开放 Issues,或尚未同步最近议题。