diff options
Diffstat (limited to 'src/json_helper.cpp')
-rw-r--r-- | src/json_helper.cpp | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/src/json_helper.cpp b/src/json_helper.cpp index 193a187..ac3d2b0 100644 --- a/src/json_helper.cpp +++ b/src/json_helper.cpp @@ -14,9 +14,12 @@ * limitations under the License. */ -#include "json_helper.hpp" +#include <json-c/json.h> #include <json.h> +#include "json_helper.hpp" +#include "hmi-debug.h" + json_object *to_json(compositor::surface_properties const &s) { // auto j = json::object({ @@ -100,3 +103,52 @@ json_object *to_json(std::vector<uint32_t> const &v) { } return a; } + +namespace jh { + +const char* getStringFromJson(json_object* obj, const char* key) { + if ((nullptr == obj) || (nullptr == key)) { + HMI_ERROR("wm:jh", "Argument is nullptr!!!"); + return nullptr; + } + + json_object* tmp; + if (!json_object_object_get_ex(obj, key, &tmp)) { + HMI_DEBUG("wm:jh", "Not found key \"%s\"", key); + return nullptr; + } + + return json_object_get_string(tmp); +} + +int getIntFromJson(json_object* obj, const char* key) { + if ((nullptr == obj) || (nullptr == key)) { + HMI_ERROR("wm", "Argument is nullptr!!!"); + return 0; + } + + json_object* tmp; + if (!json_object_object_get_ex(obj, key, &tmp)) { + HMI_DEBUG("wm", "Not found key \"%s\"", key); + return 0; + } + + return json_object_get_int(tmp); +} + +json_bool getBoolFromJson(json_object* obj, const char* key) { + if ((nullptr == obj) || (nullptr == key)) { + HMI_ERROR("wm", "Argument is nullptr!!!"); + return 0; + } + + json_object* tmp; + if (!json_object_object_get_ex(obj, key, &tmp)) { + HMI_DEBUG("wm", "Not found key \"%s\"", key); + return 0; + } + + return json_object_get_boolean(tmp); +} + +} // namespace jh |