From 7b1bd99de634e50f50d1abd2c25be76bff132a6b Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Sun, 19 Feb 2017 18:05:38 -0600 Subject: [PATCH] Add jv_object_has() --- src/jv.c | 10 ++++++++++ src/jv.h | 1 + 2 files changed, 11 insertions(+) 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);