Mercurial > minori
comparison include/core/json.h @ 174:f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 29 Nov 2023 13:53:56 -0500 |
parents | b315f3759c56 |
children | 9b10175be389 |
comparison
equal
deleted
inserted
replaced
173:de0a8d2f28b3 | 174:f88eda79c60a |
---|---|
3 | 3 |
4 #include "json/json.h" | 4 #include "json/json.h" |
5 | 5 |
6 namespace JSON { | 6 namespace JSON { |
7 | 7 |
8 std::string GetString(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr, std::string def = ""); | 8 template<typename T = std::string> |
9 int GetInt(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr, int def = 0); | 9 T GetString(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def) { |
10 bool GetBoolean(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr, bool def = false); | 10 if (json.contains(ptr) && json[ptr].is_string()) |
11 double GetDouble(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr, double def = 0); | 11 return json[ptr].get<T>(); |
12 else | |
13 return def; | |
14 } | |
15 | |
16 template<typename T = int> | |
17 T GetNumber(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def = 0) { | |
18 if (json.contains(ptr) && json[ptr].is_number()) | |
19 return json[ptr].get<T>(); | |
20 else | |
21 return def; | |
22 } | |
23 | |
24 template<typename T = std::vector<std::string>> | |
25 T GetArray(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def = 0) { | |
26 if (json.contains(ptr) && json[ptr].is_array()) | |
27 return json[ptr].get<T>(); | |
28 else | |
29 return def; | |
30 } | |
31 | |
32 nlohmann::json GetValue(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr); | |
33 bool GetBoolean(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, bool def = false); | |
12 | 34 |
13 } // namespace JSON | 35 } // namespace JSON |
14 | 36 |
15 #endif // __core__json_h | 37 #endif // __core__json_h |