Go to the source code of this file.
Macros | |
#define | FALSE ((boolean)0) |
#define | JSON_OBJECT_DEF_HASH_ENTIRES 16 |
#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) |
#define | TRUE ((boolean)1) |
Typedefs | |
typedef int | boolean |
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 } |
Variables | |
const char * | json_hex_chars |
const char * | json_number_chars |
#define FALSE ((boolean)0) |
Definition at line 18 of file json_object.h.
#define JSON_OBJECT_DEF_HASH_ENTIRES 16 |
Definition at line 15 of file json_object.h.
#define json_object_object_foreach | ( | obj, | |
key, | |||
val | |||
) |
Iterate through all keys and values of an object
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 |
Definition at line 155 of file json_object.h.
#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 |
Definition at line 165 of file json_object.h.
#define TRUE ((boolean)1) |
Definition at line 21 of file json_object.h.
typedef int boolean |
Definition at line 28 of file json_object.h.
enum json_type |
Enumerator | |
---|---|
json_type_null | |
json_type_boolean | |
json_type_double | |
json_type_int | |
json_type_object | |
json_type_array | |
json_type_string |
Definition at line 37 of file json_object.h.
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 |
Definition at line 522 of file json_object.c.
struct json_object* json_object_array_get_idx | ( | struct json_object * | obj, |
int | idx | ||
) |
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 |
Definition at line 535 of file json_object.c.
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 |
Definition at line 516 of file json_object.c.
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 |
Definition at line 528 of file json_object.c.
struct json_object* json_object_get | ( | struct json_object * | obj | ) |
Increment the reference count of json_object
obj | the json_object instance |
Definition at line 136 of file json_object.c.
struct array_list* json_object_get_array | ( | struct json_object * | obj | ) |
Get the arraylist of a json_object of type json_type_array
obj | the json_object instance |
Definition at line 505 of file json_object.c.
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 |
Definition at line 306 of file json_object.c.
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 |
Definition at line 395 of file json_object.c.
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 |
Definition at line 341 of file json_object.c.
struct lh_table* json_object_get_object | ( | struct json_object * | obj | ) |
Get the hashtable of a json_object of type json_type_object
obj | the json_object instance |
Definition at line 259 of file json_object.c.
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 |
Definition at line 452 of file json_object.c.
enum json_type json_object_get_type | ( | struct json_object * | obj | ) |
Get the type of the json_object
obj | the json_object instance |
Definition at line 190 of file json_object.c.
int json_object_is_type | ( | struct json_object * | obj, |
int | 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, |
Definition at line 184 of file json_object.c.
struct json_object* json_object_new_array | ( | void | ) |
Create a new empty json_object of type json_type_array
Definition at line 495 of file json_object.c.
struct json_object* json_object_new_boolean | ( | boolean | b | ) |
Create a new empty json_object of type json_type_boolean
b | a boolean TRUE or FALSE (0 or 1) |
Definition at line 297 of file json_object.c.
struct json_object* json_object_new_double | ( | double | d | ) |
Create a new empty json_object of type json_type_double
d | the double |
Definition at line 386 of file json_object.c.
struct json_object* json_object_new_int | ( | int | i | ) |
Create a new empty json_object of type json_type_int
i | the integer |
Definition at line 332 of file json_object.c.
struct json_object* json_object_new_object | ( | void | ) |
Create a new empty object
Definition at line 248 of file json_object.c.
struct json_object* json_object_new_string | ( | const char * | s | ) |
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 |
Definition at line 432 of file json_object.c.
struct json_object* json_object_new_string_len | ( | const char * | s, |
int | len | ||
) |
Definition at line 442 of file json_object.c.
void json_object_object_add | ( | struct json_object * | obj, |
const 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 |
Definition at line 270 of file json_object.c.
void json_object_object_del | ( | struct json_object * | obj, |
const 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 |
Definition at line 282 of file json_object.c.
struct json_object* json_object_object_get | ( | struct json_object * | obj, |
const char * | key | ||
) |
Get the json_object associate with a given object field
obj | the json_object instance |
key | the object field name |
Definition at line 277 of file json_object.c.
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 |
Definition at line 144 of file json_object.c.
const char* json_object_to_json_string | ( | struct json_object * | obj | ) |
Stringify object to json format
obj | the json_object instance |
Definition at line 199 of file json_object.c.
void json_set_float_format | ( | const char * | f | ) |
Definition at line 362 of file json_object.c.
const char* json_hex_chars |
Definition at line 41 of file json_object.c.
const char* json_number_chars |
Definition at line 40 of file json_object.c.