From b175877d8b2f411b22dac0296df6efca2e5f852a Mon Sep 17 00:00:00 2001 From: Roland Meertens Date: Tue, 15 Sep 2015 02:40:27 +0200 Subject: [PATCH] +usefull function --- cJSON.c | 11 +++++++++++ cJSON.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cJSON.c b/cJSON.c index 460aeb4..9399756 100644 --- a/cJSON.c +++ b/cJSON.c @@ -661,6 +661,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 index 466d10d..cad9b57 100644 --- 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);