diff options
Diffstat (limited to 'ahl-binding/jsonc_utils.hpp')
-rw-r--r-- | ahl-binding/jsonc_utils.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ahl-binding/jsonc_utils.hpp b/ahl-binding/jsonc_utils.hpp index 5e82fca..097eda4 100644 --- a/ahl-binding/jsonc_utils.hpp +++ b/ahl-binding/jsonc_utils.hpp @@ -81,11 +81,15 @@ inline std::string& jcast<std::string>(std::string& v, json_object* o) template<class T> inline T& jcast(T& v, json_object* o, std::string field) { - return jcast<T>(v, json_object_object_get(o, field.c_str())); + json_object * value; + json_object_object_get_ex(o, field.c_str(), &value); + return jcast<T>(v, value); } template<class T> inline T& jcast_array(T& v, json_object* o, std::string field) { - return jcast_array<T>(v, json_object_object_get(o, field.c_str())); + json_object * value; + json_object_object_get_ex(o, field.c_str(), &value); + return jcast_array<T>(v, value); } |