Mercurial > minori
annotate 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 |
| rev | line source |
|---|---|
| 9 | 1 #ifndef __core__json_h |
| 2 #define __core__json_h | |
| 64 | 3 |
| 102 | 4 #include "json/json.h" |
| 64 | 5 |
| 9 | 6 namespace JSON { |
| 64 | 7 |
|
174
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
8 template<typename T = std::string> |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
9 T GetString(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def) { |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
10 if (json.contains(ptr) && json[ptr].is_string()) |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
11 return json[ptr].get<T>(); |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
12 else |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
13 return def; |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
14 } |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
15 |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
16 template<typename T = int> |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
17 T GetNumber(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def = 0) { |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
18 if (json.contains(ptr) && json[ptr].is_number()) |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
19 return json[ptr].get<T>(); |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
20 else |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
21 return def; |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
22 } |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
23 |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
24 template<typename T = std::vector<std::string>> |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
25 T GetArray(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, T def = 0) { |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
26 if (json.contains(ptr) && json[ptr].is_array()) |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
27 return json[ptr].get<T>(); |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
28 else |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
29 return def; |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
30 } |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
31 |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
32 nlohmann::json GetValue(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr); |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
102
diff
changeset
|
33 bool GetBoolean(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, bool def = false); |
| 64 | 34 |
| 9 | 35 } // namespace JSON |
| 64 | 36 |
| 9 | 37 #endif // __core__json_h |
