cJSON

mirror of Dave's cJSON
git clone git://git.thc420.xyz/cJSON
Log | Files | Refs | README | LICENSE

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:
McJSON.c | 11+++++++++++
McJSON.h | 2+-
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);