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