JSON Toolkit is a swiss-army knife for JSON programming in modern C++. It comes with a built-in parser and growing support for standards such as JSON Schema, JSON Pointer, JSONL, and more. For example:
#include <sourcemeta/jsontoolkit/json.h>
#include <sourcemeta/jsontoolkit/jsonpointer.h>
#include <sstream>
#include <iostream>
#include <stdlib>
#include <utility>
auto main() -> int {
// Parsing a JSON document from a string
auto document{sourcemeta::jsontoolkit::parse(R"JSON({
"name": "John Doe",
"age": 20,
"address": "14 Manchester Road, Coventry CV77 1XN"
})JSON")};
// Updating a property using JSON Pointer
const sourcemeta::jsontoolkit::Pointer pointer{"name"};
sourcemeta::jsontoolkit::JSON new_value{"Jane Doe"};
sourcemeta::jsontoolkit::set(document, pointer, std::move(new_value));
// Pretty-print result
sourcemeta::jsontoolkit::prettify(document, std::cout);
std::cout << "\n";
return EXIT_SUCCESS;
}
Refer to the project website for documentation: https://jsontoolkit.sourcemeta.com.
This project is governed by the AGPL-3.0 copyleft license and our Contribution Agreement. To ensure the sustainability of the project, you can freely make use of this software as long the outcome is distributed under the same license. Otherwise, you must obtain a commercial license that removes such restrictions. Read more about our licensing approach here.