cJSON: New function cJSON_GetObjectItemCaseSensitive

This commit is contained in:
Max Bruckner 2017-02-21 10:43:43 +01:00
parent cbbcc91498
commit 605422c60a
2 changed files with 19 additions and 0 deletions

18
cJSON.c
View File

@ -1466,6 +1466,24 @@ cJSON *cJSON_GetObjectItem(const cJSON *object, const char *string)
return c;
}
cJSON *cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string)
{
cJSON *current_element = NULL;
if ((object == NULL) || (string == NULL))
{
return NULL;
}
current_element = object->child;
while ((current_element != NULL) && (strcmp(string, current_element->string) != 0))
{
current_element = current_element->next;
}
return current_element;
}
cjbool cJSON_HasObjectItem(const cJSON *object, const char *string)
{
return cJSON_GetObjectItem(object, string) ? 1 : 0;

View File

@ -104,6 +104,7 @@ extern int cJSON_GetArraySize(const cJSON *array);
extern cJSON *cJSON_GetArrayItem(const cJSON *array, int item);
/* Get item "string" from object. Case insensitive. */
extern cJSON *cJSON_GetObjectItem(const cJSON *object, const char *string);
extern cJSON *cJSON_GetObjectItemCaseSensitive(const cJSON *object, const char *string);
extern int cJSON_HasObjectItem(const 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);