Mercurial > minori
view src/core/json.cc @ 166:54c5d80a737e
dep/animia: add libutil method
I changed the "linux" method to be "proc", because it isn't exactly Linux specific
this commit also has some changes to the x11 stuff:
instead of enumerating over only top-level windows, we iterate over ALL of them
this is because many X11 apps actually use multiple windows
for some reason, I still can't get it to work with VLC, but it picks up Firefox...
| author | paper@DavesDouble.local |
|---|---|
| date | Sun, 19 Nov 2023 04:21:56 -0500 |
| parents | d02fdf1d6708 |
| children | f88eda79c60a |
line wrap: on
line source
#include "core/json.h" namespace JSON { std::string GetString(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, std::string def) { if (json.contains(ptr) && json[ptr].is_string()) return json[ptr].get<std::string>(); else return def; } int GetInt(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, int def) { if (json.contains(ptr) && json[ptr].is_number()) return json[ptr].get<int>(); else return def; } bool GetBoolean(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, bool def) { if (json.contains(ptr) && json[ptr].is_boolean()) return json[ptr].get<bool>(); else return def; } double GetDouble(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, double def) { if (json.contains(ptr) && json[ptr].is_number()) return json[ptr].get<double>(); else return def; } } // namespace JSON
