commit 1e1de63244938d32086f4e81e20171a744b137de
parent 11b8c97f417737f4c7b03bab6a65765f30799b1d
Author: Kevin Branigan <kbranigan@gmail.com>
Date: Thu, 1 Oct 2015 11:37:44 -0400
Merge pull request #13 from rmeertens/master
added cJSON_HasObjectItem
Diffstat:
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/cJSON.c b/cJSON.c
@@ -662,6 +662,17 @@ static char *print_object(cJSON *item,int depth,int fmt,printbuffer *p)
int cJSON_GetArraySize(cJSON *array) {cJSON *c=array->child;int i=0;while(c)i++,c=c->next;return i;}
cJSON *cJSON_GetArrayItem(cJSON *array,int item) {cJSON *c=array->child; while (c && item>0) item--,c=c->next; return c;}
cJSON *cJSON_GetObjectItem(cJSON *object,const char *string) {cJSON *c=object->child; while (c && cJSON_strcasecmp(c->string,string)) c=c->next; return c;}
+int *cJSON_HasObjectItem(cJSON *object,const char *string) {
+ cJSON *c=object->child;
+ while (c )
+ {
+ if(cJSON_strcasecmp(c->string,string)==0){
+ return 1;
+ }
+ c=c->next;
+ }
+ return 0;
+}
/* Utility for array list handling. */
static void suffix_object(cJSON *prev,cJSON *item) {prev->next=item;item->prev=prev;}
diff --git a/cJSON.h b/cJSON.h
@@ -80,7 +80,7 @@ extern int cJSON_GetArraySize(cJSON *array);
extern cJSON *cJSON_GetArrayItem(cJSON *array,int item);
/* Get item "string" from object. Case insensitive. */
extern cJSON *cJSON_GetObjectItem(cJSON *object,const char *string);
-
+extern int *cJSON_HasObjectItem(cJSON *object,const char *string);
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */
extern const char *cJSON_GetErrorPtr(void);