| Data Structures | 
| struct | json_object_iter | 
| Defines | 
| #define | JSON_OBJECT_DEF_HASH_ENTRIES   16 | 
| #define | JSON_C_TO_STRING_PLAIN   0 | 
| #define | JSON_C_TO_STRING_SPACED   (1<<0) | 
| #define | JSON_C_TO_STRING_PRETTY   (1<<1) | 
| #define | FALSE   ((json_bool)0) | 
| #define | TRUE   ((json_bool)1) | 
| #define | json_object_object_foreach(obj, key, val) | 
| #define | json_object_object_foreachC(obj, iter)   for(iter.entry = json_object_get_object(obj)->head; (iter.entry ? (iter.key = (char*)iter.entry->k, iter.val = (struct json_object*)iter.entry->v, iter.entry) : 0); iter.entry = iter.entry->next) | 
| Typedefs | 
| typedef int | json_bool | 
| typedef struct printbuf | printbuf | 
| typedef struct lh_table | lh_table | 
| typedef struct array_list | array_list | 
| typedef struct json_object | json_object | 
| typedef struct json_object_iter | json_object_iter | 
| typedef struct json_tokener | json_tokener | 
| typedef enum json_type | json_type | 
| Enumerations | 
| enum | json_type { json_type_null, 
json_type_boolean, 
json_type_double, 
json_type_int,
 json_type_object, 
json_type_array, 
json_type_string
 }
 | 
| Functions | 
| struct json_object * | json_object_get (struct json_object *obj) | 
| void | json_object_put (struct json_object *obj) | 
| int | json_object_is_type (struct json_object *obj, enum json_type type) | 
| enum json_type | json_object_get_type (struct json_object *obj) | 
| const char * | json_object_to_json_string (struct json_object *obj) | 
| const char * | json_object_to_json_string_ext (struct json_object *obj, int flags) | 
| struct json_object * | json_object_new_object (void) | 
| struct lh_table * | json_object_get_object (struct json_object *obj) | 
| void | json_object_object_add (struct json_object *obj, const char *key, struct json_object *val) | 
| struct json_object * | json_object_object_get (struct json_object *obj, const char *key) | 
| json_bool | json_object_object_get_ex (struct json_object *obj, const char *key, struct json_object **value) | 
| void | json_object_object_del (struct json_object *obj, const char *key) | 
| struct json_object * | json_object_new_array (void) | 
| struct array_list * | json_object_get_array (struct json_object *obj) | 
| int | json_object_array_length (struct json_object *obj) | 
| void | json_object_array_sort (struct json_object *jso, int(*sort_fn)(const void *, const void *)) | 
| int | json_object_array_add (struct json_object *obj, struct json_object *val) | 
| int | json_object_array_put_idx (struct json_object *obj, int idx, struct json_object *val) | 
| struct json_object * | json_object_array_get_idx (struct json_object *obj, int idx) | 
| struct json_object * | json_object_new_boolean (json_bool b) | 
| json_bool | json_object_get_boolean (struct json_object *obj) | 
| struct json_object * | json_object_new_int (int32_t i) | 
| struct json_object * | json_object_new_int64 (int64_t i) | 
| int32_t | json_object_get_int (struct json_object *obj) | 
| int64_t | json_object_get_int64 (struct json_object *obj) | 
| struct json_object * | json_object_new_double (double d) | 
| double | json_object_get_double (struct json_object *obj) | 
| struct json_object * | json_object_new_string (const char *s) | 
| struct json_object * | json_object_new_string_len (const char *s, int len) | 
| const char * | json_object_get_string (struct json_object *obj) | 
| int | json_object_get_string_len (struct json_object *obj) | 
| Variables | 
| const char * | json_number_chars | 
| const char * | json_hex_chars | 
Insert or replace an element at a specified index in an array (a json_object of type json_type_array)
The reference count will *not* be incremented. This is to make adding fields to objects in code more compact. If you want to retain a reference to an added object you must wrap the passed object with json_object_get
The reference count of a replaced object will be decremented.
The array size will be automatically be expanded to the size of the index if the index is larger than the current size.
- Parameters:
- 
  
  
 
 
      
        
          | double json_object_get_double | ( | struct json_object * | obj | ) |  | 
      
 
Get the double floating point value of a json_object
The type is coerced to a double if the passed object is not a double. integer objects will return their double conversion. Strings will be parsed as a double. If no conversion exists then 0.0 is returned and errno is set to EINVAL. null is equivalent to 0 (no error values set)
If the value is too big to fit in a double, then the value is set to the closest infinity with errno set to ERANGE. If strings cannot be converted to their double value, then EINVAL is set & NaN is returned.
Arrays of length 0 are interpreted as 0 (with no error flags set). Arrays of length 1 are effectively cast to the equivalent object and converted using the above rules. All other arrays set the error to EINVAL & return NaN.
NOTE: Set errno to 0 directly before a call to this function to determine whether or not conversion was successful (it does not clear the value for you).
- Parameters:
- 
  
  
- Returns:
- a double floating point number 
 
 
      
        
          | int32_t json_object_get_int | ( | struct json_object * | obj | ) |  | 
      
 
Get the int value of a json_object
The type is coerced to a int if the passed object is not a int. double objects will return their integer conversion. Strings will be parsed as an integer. If no conversion exists then 0 is returned and errno is set to EINVAL. null is equivalent to 0 (no error values set)
Note that integers are stored internally as 64-bit values. If the value of too big or too small to fit into 32-bit, INT32_MAX or INT32_MIN are returned, respectively.
- Parameters:
- 
  
  
- Returns:
- an int 
 
 
Add an object field to a json_object of type json_type_object
The reference count will *not* be incremented. This is to make adding fields to objects in code more compact. If you want to retain a reference to an added object, independent of the lifetime of obj, you must wrap the passed object with json_object_get.
Upon calling this, the ownership of val transfers to obj. Thus you must make sure that you do in fact have ownership over this object. For instance, json_object_new_object will give you ownership until you transfer it, whereas json_object_object_get does not.
- Parameters:
- 
  
    |  | obj | the json_object instance |  |  | key | the object field name (a private copy will be duplicated) |  |  | val | a json_object or NULL member to associate with the given field |  
 
 
 
Get the json_object associated with a given object field.
This returns true if the key is found, false in all other cases (including if obj isn't a json_type_object).
*No* reference counts will be changed. There is no need to manually adjust reference counts through the json_object_put/json_object_get methods unless you need to have the child (value) reference maintain a different lifetime than the owning parent (obj). Ownership of value is retained by obj.
- Parameters:
- 
  
    |  | obj | the json_object instance |  |  | key | the object field name |  |  | value | a pointer where to store a reference to the json_object associated with the given field name. |  
 
It is safe to pass a NULL value. 
- Returns:
- whether or not the key exists