#define FALSE ((boolean)0) |
#define JSON_OBJECT_DEF_HASH_ENTIRES 16 |
#define json_object_object_foreach | ( | obj, | |||
key, | |||||
val | ) |
Value:
char *key; struct json_object *val; struct lh_entry *entry; \ for(entry = json_object_get_object(obj)->head; (entry ? (key = (char*)entry->k, val = (struct json_object*)entry->v, entry) : 0); entry = entry->next)
obj | the json_object instance | |
key | the local name for the char* key variable defined in the body | |
val | the local name for the json_object* object variable defined in the body |
#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) |
Iterate through all keys and values of an object (ANSI C Safe)
obj | the json_object instance | |
iter | the object iterator |
#define TRUE ((boolean)1) |
typedef int boolean |
enum json_type |
int json_object_array_add | ( | struct json_object * | obj, | |
struct json_object * | val | |||
) |
Add an element to the end of 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
obj | the json_object instance | |
val | the json_object to be added |
struct json_object* json_object_array_get_idx | ( | struct json_object * | obj, | |
int | idx | |||
) | [read] |
Get the element at specificed index of the array (a json_object of type json_type_array)
obj | the json_object instance | |
idx | the index to get the element at |
int json_object_array_length | ( | struct json_object * | obj | ) |
Get the length of a json_object of type json_type_array
obj | the json_object instance |
int json_object_array_put_idx | ( | struct json_object * | obj, | |
int | idx, | |||
struct json_object * | val | |||
) |
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.
obj | the json_object instance | |
idx | the index to insert the element at | |
val | the json_object to be added |
struct json_object* json_object_get | ( | struct json_object * | obj | ) | [read] |
Increment the reference count of json_object
obj | the json_object instance |
struct array_list* json_object_get_array | ( | struct json_object * | obj | ) | [read] |
Get the arraylist of a json_object of type json_type_array
obj | the json_object instance |
boolean json_object_get_boolean | ( | struct json_object * | obj | ) |
Get the boolean value of a json_object
The type is coerced to a boolean if the passed object is not a boolean. integer and double objects will return FALSE if there value is zero or TRUE otherwise. If the passed object is a string it will return TRUE if it has a non zero length. If any other object type is passed TRUE will be returned if the object is not NULL.
obj | the json_object instance |
double json_object_get_double | ( | struct json_object * | obj | ) |
Get the double 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 dboule conversion. Strings will be parsed as a double. If no conversion exists then 0.0 is returned.
obj | the json_object instance |
int 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.
obj | the json_object instance |
struct lh_table* json_object_get_object | ( | struct json_object * | obj | ) | [read] |
Get the hashtable of a json_object of type json_type_object
obj | the json_object instance |
char* json_object_get_string | ( | struct json_object * | obj | ) |
Get the string value of a json_object
If the passed object is not of type json_type_string then the JSON representation of the object is returned.
The returned string memory is managed by the json_object and will be freed when the reference count of the json_object drops to zero.
obj | the json_object instance |
enum json_type json_object_get_type | ( | struct json_object * | obj | ) |
Get the type of the json_object
obj | the json_object instance |
int json_object_is_type | ( | struct json_object * | obj, | |
enum json_type | type | |||
) |
Check if the json_object is of a given type
obj | the json_object instance | |
type | one of: json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_array, json_type_string, |
struct json_object* json_object_new_array | ( | void | ) | [read] |
Create a new empty json_object of type json_type_array
struct json_object* json_object_new_boolean | ( | boolean | b | ) | [read] |
Create a new empty json_object of type json_type_boolean
b | a boolean TRUE or FALSE (0 or 1) |
struct json_object* json_object_new_double | ( | double | d | ) | [read] |
Create a new empty json_object of type json_type_double
d | the double |
struct json_object* json_object_new_int | ( | int | i | ) | [read] |
Create a new empty json_object of type json_type_int
i | the integer |
struct json_object* json_object_new_object | ( | void | ) | [read] |
Create a new empty object
struct json_object* json_object_new_string | ( | char * | s | ) | [read] |
Create a new empty json_object of type json_type_string
A copy of the string is made and the memory is managed by the json_object
s | the string |
struct json_object* json_object_new_string_len | ( | char * | s, | |
int | len | |||
) | [read] |
void json_object_object_add | ( | struct json_object * | obj, | |
char * | key, | |||
struct json_object * | val | |||
) |
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 you must wrap the passed object with json_object_get
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 |
void json_object_object_del | ( | struct json_object * | obj, | |
char * | key | |||
) |
Delete the given json_object field
The reference count will be decremented for the deleted object
obj | the json_object instance | |
key | the object field name |
struct json_object* json_object_object_get | ( | struct json_object * | obj, | |
char * | key | |||
) | [read] |
Get the json_object associate with a given object field
obj | the json_object instance | |
key | the object field name |
void json_object_put | ( | struct json_object * | obj | ) |
Decrement the reference count of json_object and free if it reaches zero
obj | the json_object instance |
char* json_object_to_json_string | ( | struct json_object * | obj | ) |
Stringify object to json format
obj | the json_object instance |
char* json_hex_chars |
char* json_number_chars |