diff --git a/src/jv.c b/src/jv.c index e064baf5..5e54d2f3 100644 --- a/src/jv.c +++ b/src/jv.c @@ -1106,6 +1106,16 @@ jv jv_object_get(jv object, jv key) { return val; } +int jv_object_has(jv object, jv key) { + assert(jv_get_kind(object) == JV_KIND_OBJECT); + assert(jv_get_kind(key) == JV_KIND_STRING); + jv* slot = jvp_object_read(object, key); + int res = slot ? 1 : 0; + jv_free(object); + jv_free(key); + return res; +} + jv jv_object_set(jv object, jv key, jv value) { assert(jv_get_kind(object) == JV_KIND_OBJECT); assert(jv_get_kind(key) == JV_KIND_STRING); diff --git a/src/jv.h b/src/jv.h index 9e74c9d8..b47badad 100644 --- a/src/jv.h +++ b/src/jv.h @@ -123,6 +123,7 @@ jv jv_string_implode(jv j); jv jv_object(void); jv jv_object_get(jv object, jv key); +int jv_object_has(jv object, jv key); jv jv_object_set(jv object, jv key, jv value); jv jv_object_delete(jv object, jv key); int jv_object_length(jv object);