1
0
mirror of https://github.com/binary-kitchen/doorlockd synced 2024-12-22 18:34:25 +01:00
doorlockd-mirror/doorlockd/lib/util.h
Ralf Ramsauer ab8f33ebb1 Fix JSON Bug
Json::Values do not necessarily need to be JSON objects. This Patch
checks if the JSON::Value is in deed an object.

Reported-by: Markus Dollinger <dolli@ignifax.de>
Signed-off-by: Ralf Ramsauer <ralf@ramses-pyramidenbau.de>
2015-10-27 16:05:09 +01:00

29 lines
583 B
C++

#ifndef UTIL_H
#define UTIL_H
#include <algorithm>
#include <exception>
#include <json/json.h>
template <typename T>
T getJson(const Json::Value &root, const std::string &key);
template <typename T>
static T getJsonOrFail(const Json::Value &root, const std::string &key)
{
if (root.isObject() == false)
{
throw std::runtime_error("Invalid Json Object");
}
if (root.isMember(key) == false) {
throw std::runtime_error("Json key \"" + key + "\" not existing");
}
return getJson<T>(root, key);
}
std::string toHexString(uint64_t c);
#endif