Browse Source

cJSON: New function cJSON_GetObjectItemCaseSensitive

Max Bruckner 8 năm trước cách đây
mục cha
commit
605422c60a
2 tập tin đã thay đổi với 19 bổ sung0 xóa
  1. 18 0
      cJSON.c
  2. 1 0
      cJSON.h

+ 18 - 0
cJSON.c

@@ -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;

+ 1 - 0
cJSON.h

@@ -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);