comparison src/json.cpp @ 6:1d82f6e04d7d

Update: add first parts to the settings dialog
author Paper <mrpapersonic@gmail.com>
date Wed, 16 Aug 2023 00:49:17 -0400
parents 23d0d9319a00
children 07a9095eaeed
comparison
equal deleted inserted replaced
5:51ae25154b70 6:1d82f6e04d7d
1 #include "json.h" 1 #include "json.h"
2 2
3 namespace JSON { 3 namespace JSON {
4 4
5 std::string GetString(nlohmann::json const& json, std::string const& key) { 5 std::string GetString(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr) {
6 auto item = json.find(key); 6 if (json.contains(ptr) && json[ptr].is_string())
7 if (item != json.end() && item->is_string()) 7 return json[ptr].get<std::string>();
8 return item->get<std::string>();
9 else return ""; 8 else return "";
10 } 9 }
11 10
12 int GetInt(nlohmann::json const& json, std::string const& key) { 11 int GetInt(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr) {
13 auto item = json.find(key); 12 if (json.contains(ptr) && json[ptr].is_number())
14 if (item != json.end() && item->is_number()) 13 return json[ptr].get<int>();
15 return item->get<int>();
16 else return 0; 14 else return 0;
17 } 15 }
18 16
19 bool GetBoolean(nlohmann::json const& json, std::string const& key) { 17 bool GetBoolean(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr) {
20 auto item = json.find(key); 18 if (json.contains(ptr) && json[ptr].is_boolean())
21 if (item != json.end() && item->is_boolean()) 19 return json[ptr].get<bool>();
22 return item->get<bool>();
23 else return false; 20 else return false;
24 } 21 }
25 22
26 double GetDouble(nlohmann::json const& json, std::string const& key) { 23 double GetDouble(nlohmann::json const& json, nlohmann::json::json_pointer const& ptr) {
27 auto item = json.find(key); 24 if (json.contains(ptr) && json[ptr].is_number())
28 if (item != json.end() && item->is_number()) 25 return json[ptr].get<double>();
29 return item->get<double>();
30 else return 0; 26 else return 0;
31 } 27 }
32 28
33 } 29 }
34 30