Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dropbox/json11
A tiny JSON library for C++11.
https://github.com/dropbox/json11
Last synced: 3 months ago
JSON representation
A tiny JSON library for C++11.
- Host: GitHub
- URL: https://github.com/dropbox/json11
- Owner: dropbox
- License: mit
- Archived: true
- Created: 2013-09-06T22:08:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-03-25T23:27:28.000Z (over 4 years ago)
- Last Synced: 2024-09-22T02:05:52.564Z (3 months ago)
- Language: C++
- Homepage:
- Size: 87.9 KB
- Stars: 2,548
- Watchers: 144
- Forks: 615
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome - dropbox/json11 - A tiny JSON library for C++11. (C/C++ / JSON)
- awesome-json - json11 - A tiny library for C++11. (Libraries)
README
json11
------json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.
The core object provided by the library is json11::Json. A Json object represents any JSON
value: null, bool, number (int or double), string (std::string), array (std::vector), or
object (std::map).Json objects act like values. They can be assigned, copied, moved, compared for equality or
order, and so on. There are also helper methods Json::dump, to serialize a Json to a string, and
Json::parse (static) to parse a std::string as a Json object.It's easy to make a JSON object with C++11's new initializer syntax:
Json my_json = Json::object {
{ "key1", "value1" },
{ "key2", false },
{ "key3", Json::array { 1, 2, 3 } },
};
std::string json_str = my_json.dump();There are also implicit constructors that allow standard and user-defined types to be
automatically converted to JSON. For example:class Point {
public:
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 values can have their values queried and inspected:
Json json = Json::array { Json::object { { "k", "v" } } };
std::string str = json[0]["k"].string_value();For more documentation see json11.hpp.