| #include <iostream> | |
| #include <iomanip> | |
| #include <nlohmann/json.hpp> | |
| using json = nlohmann::json; | |
| using namespace nlohmann::literals; | |
| // function to print BJData's diagnostic format | |
| void print_byte(uint8_t byte) | |
| { | |
| if (32 < byte and byte < 128) | |
| { | |
| std::cout << (char)byte; | |
| } | |
| else | |
| { | |
| std::cout << (int)byte; | |
| } | |
| } | |
| int main() | |
| { | |
| // create a JSON value | |
| json j = R"({"compact": true, "schema": false})"_json; | |
| // serialize it to BJData | |
| std::vector<std::uint8_t> v = json::to_bjdata(j); | |
| // print the vector content | |
| for (auto& byte : v) | |
| { | |
| print_byte(byte); | |
| } | |
| std::cout << std::endl; | |
| // create an array of numbers | |
| json array = {1, 2, 3, 4, 5, 6, 7, 8}; | |
| // serialize it to BJData using default representation | |
| std::vector<std::uint8_t> v_array = json::to_bjdata(array); | |
| // serialize it to BJData using size optimization | |
| std::vector<std::uint8_t> v_array_size = json::to_bjdata(array, true); | |
| // serialize it to BJData using type optimization | |
| std::vector<std::uint8_t> v_array_size_and_type = json::to_bjdata(array, true, true); | |
| // print the vector contents | |
| for (auto& byte : v_array) | |
| { | |
| print_byte(byte); | |
| } | |
| std::cout << std::endl; | |
| for (auto& byte : v_array_size) | |
| { | |
| print_byte(byte); | |
| } | |
| std::cout << std::endl; | |
| for (auto& byte : v_array_size_and_type) | |
| { | |
| print_byte(byte); | |
| } | |
| std::cout << std::endl; | |
| } |