mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-14 14:30:29 +01:00
60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
|
#include <iostream>
|
||
|
#include <unordered_map>
|
||
|
#include <nlohmann/json.hpp>
|
||
|
|
||
|
using json = nlohmann::json;
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
// create a JSON value with different types
|
||
|
json json_types =
|
||
|
{
|
||
|
{"boolean", true},
|
||
|
{
|
||
|
"number", {
|
||
|
{"integer", 42},
|
||
|
{"floating-point", 17.23}
|
||
|
}
|
||
|
},
|
||
|
{"string", "Hello, world!"},
|
||
|
{"array", {1, 2, 3, 4, 5}},
|
||
|
{"null", nullptr}
|
||
|
};
|
||
|
|
||
|
bool v1;
|
||
|
int v2;
|
||
|
short v3;
|
||
|
float v4;
|
||
|
int v5;
|
||
|
std::string v6;
|
||
|
std::vector<short> v7;
|
||
|
std::unordered_map<std::string, json> v8;
|
||
|
|
||
|
// use explicit conversions
|
||
|
json_types["boolean"].get_to(v1);
|
||
|
json_types["number"]["integer"].get_to(v2);
|
||
|
json_types["number"]["integer"].get_to(v3);
|
||
|
json_types["number"]["floating-point"].get_to(v4);
|
||
|
json_types["number"]["floating-point"].get_to(v5);
|
||
|
json_types["string"].get_to(v6);
|
||
|
json_types["array"].get_to(v7);
|
||
|
json_types.get_to(v8);
|
||
|
|
||
|
// print the conversion results
|
||
|
std::cout << v1 << '\n';
|
||
|
std::cout << v2 << ' ' << v3 << '\n';
|
||
|
std::cout << v4 << ' ' << v5 << '\n';
|
||
|
std::cout << v6 << '\n';
|
||
|
|
||
|
for (auto i : v7)
|
||
|
{
|
||
|
std::cout << i << ' ';
|
||
|
}
|
||
|
std::cout << "\n\n";
|
||
|
|
||
|
for (auto i : v8)
|
||
|
{
|
||
|
std::cout << i.first << ": " << i.second << '\n';
|
||
|
}
|
||
|
}
|