Json11 - là một thư viện JSON nhỏ cho C++ 11, cung cấp phân tích cú pháp JSON và tuần tự hóa.
Đối tượng lõi được cung cấp bởi thư viện là json11 :: Json. Một đối tượng Json đại diện cho bất kỳ giá trị JSON nào: null, bool, number (int hoặc double), chuỗi (std :: string), mảng (std :: vector) hoặc đối tượng (std :: map).
Các đối tượng Json hoạt động như các giá trị. Chúng có thể được gán, sao chép, di chuyển, so sánh với sự bình đẳng hoặc trật tự, v.v. Ngoài ra còn có các phương thức trợ giúp Json :: dump, để tuần tự hóa một Json thành một chuỗi và Json :: parse (static) để phân tích một chuỗi std :: như một đối tượng Json.
Ví dụ:
const string simple_test =
R"({"k1":"v1", "k2":42, "k3":["a",123,true,false,null]})";
string err;
auto json = Json::parse(simple_test, err);
std::cout << "k1: " << json["k1"].string_value() << "\n";
PicoJSON - là một JSON phân tích cú pháp nhỏ/serializer cho C++ với thuộc tính sau:
- header-tập tin chỉ
- không phụ thuộc bên ngoài (chỉ sử dụng thư viện chuẩn C++)
- STL-frendly (mảng là repr esented bằng cách sử dụng std :: vector, các đối tượng là std :: bản đồ)
- cung cấp cả giao diện kéo và streaming() giao diện dựa trên sự kiện
Ví dụ:
std::string json1 = R"({ "k1":"v1", "k2" : 42, "k3" : ["a",123,true,false,null] })";
picojson::value v;
std::string err1 = picojson::parse(v, json1);
const picojson::object& o = v.get<picojson::object>();
for (picojson::object::const_iterator i = o.begin(); i != o.end(); ++i) {
std::cout << i->first << " " << i->second << std::endl;
}
Cả hai dễ dàng sử dụng trong Visual Studio với tiêu chuẩn libriries (KHÔNG có bất kỳ phụ thuộc bổ sung).
Hãy thử cách này: [Json11] (https://github.com/dropbox/json11) hoặc [PicoJSON] (https://github.com/kazuho/picojson). Không có BOOST. – Sergo