xref: /third_party/json/docs/examples/dump.cpp (revision c5f01b2f)
1#include <iostream>
2#include <nlohmann/json.hpp>
3
4using json = nlohmann::json;
5
6int main()
7{
8    // create JSON values
9    json j_object = {{"one", 1}, {"two", 2}};
10    json j_array = {1, 2, 4, 8, 16};
11    json j_string = "Hellö �!";
12
13    // call dump()
14    std::cout << "objects:" << '\n'
15              << j_object.dump() << "\n\n"
16              << j_object.dump(-1) << "\n\n"
17              << j_object.dump(0) << "\n\n"
18              << j_object.dump(4) << "\n\n"
19              << j_object.dump(1, '\t') << "\n\n";
20
21    std::cout << "arrays:" << '\n'
22              << j_array.dump() << "\n\n"
23              << j_array.dump(-1) << "\n\n"
24              << j_array.dump(0) << "\n\n"
25              << j_array.dump(4) << "\n\n"
26              << j_array.dump(1, '\t') << "\n\n";
27
28    std::cout << "strings:" << '\n'
29              << j_string.dump() << '\n'
30              << j_string.dump(-1, ' ', true) << '\n';
31
32    // create JSON value with invalid UTF-8 byte sequence
33    json j_invalid = "ä\xA9ü";
34    try
35    {
36        std::cout << j_invalid.dump() << std::endl;
37    }
38    catch (json::type_error& e)
39    {
40        std::cout << e.what() << std::endl;
41    }
42
43    std::cout << "string with replaced invalid characters: "
44              << j_invalid.dump(-1, ' ', false, json::error_handler_t::replace)
45              << "\nstring with ignored invalid characters: "
46              << j_invalid.dump(-1, ' ', false, json::error_handler_t::ignore)
47              << '\n';
48}
49