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