12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #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;
- }
|