json_object.h File Reference
Go to the source code of this file.
Defines |
#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
} |
Functions |
int | json_object_array_add (struct json_object *obj, struct json_object *val) |
struct json_object * | json_object_array_get_idx (struct json_object *obj, int idx) |
int | json_object_array_length (struct json_object *obj) |
int | json_object_array_put_idx (struct json_object *obj, int idx, struct json_object *val) |
struct json_object * | json_object_get (struct json_object *obj) |
struct array_list * | json_object_get_array (struct json_object *obj) |
boolean | json_object_get_boolean (struct json_object *obj) |
double | json_object_get_double (struct json_object *obj) |
int | json_object_get_int (struct json_object *obj) |
struct lh_table * | json_object_get_object (struct json_object *obj) |
char * | json_object_get_string (struct json_object *obj) |
enum json_type | json_object_get_type (struct json_object *obj) |
int | json_object_is_type (struct json_object *obj, int type) |
struct json_object * | json_object_new_array (void) |
struct json_object * | json_object_new_boolean (boolean b) |
struct json_object * | json_object_new_double (double d) |
struct json_object * | json_object_new_int (int i) |
struct json_object * | json_object_new_object (void) |
struct json_object * | json_object_new_string (const char *s) |
struct json_object * | json_object_new_string_len (const char *s, int len) |
void | json_object_object_add (struct json_object *obj, const char *key, struct json_object *val) |
void | json_object_object_del (struct json_object *obj, const char *key) |
struct json_object * | json_object_object_get (struct json_object *obj, const char *key) |
void | json_object_put (struct json_object *obj) |
const char * | json_object_to_json_string (struct json_object *obj) |
void | json_set_float_format (const char *f) |
Variables |
const char * | json_hex_chars |
const char * | json_number_chars |
Define Documentation
#define JSON_OBJECT_DEF_HASH_ENTIRES 16 |
#define json_object_object_foreach |
( |
obj, |
|
|
key, |
|
|
val |
|
) |
|
Value:Iterate through all keys and values of an object
- Parameters:
-
| 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)
- Parameters:
-
Definition at line 165 of file json_object.h.
Typedef Documentation
Enumeration Type Documentation
- 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.
Function Documentation
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
- Parameters:
-
Get the element at specificed index of the array (a json_object of type json_type_array)
- Parameters:
-
| obj | the json_object instance |
| idx | the index to get the element at |
- Returns:
- the json_object at the specified index (or NULL)
int json_object_array_length |
( |
struct json_object * |
obj |
) |
|
Get the length of a json_object of type json_type_array
- Parameters:
-
- Returns:
- an int
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:
-
Increment the reference count of json_object
- Parameters:
-
Get the arraylist of a json_object of type json_type_array
- Parameters:
-
- Returns:
- an arraylist
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.
- Parameters:
-
- Returns:
- a boolean
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.
- Parameters:
-
- Returns:
- an double
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.
- Parameters:
-
- Returns:
- an int
Get the hashtable of a json_object of type json_type_object
- Parameters:
-
- Returns:
- a linkhash
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.
- Parameters:
-
- Returns:
- a string
Get the type of the json_object
- Parameters:
-
- Returns:
- type being one of: json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_array, json_type_string,
int json_object_is_type |
( |
struct json_object * |
obj, |
|
|
int |
type | |
|
) |
| | |
Check if the json_object is of a given type
- Parameters:
-
| 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_boolean
- Parameters:
-
| b | a boolean TRUE or FALSE (0 or 1) |
- Returns:
- a json_object of type json_type_boolean
struct json_object* json_object_new_double |
( |
double |
d |
) |
[read] |
Create a new empty json_object of type json_type_double
- Parameters:
-
- Returns:
- a json_object of type json_type_double
struct json_object* json_object_new_int |
( |
int |
i |
) |
[read] |
struct json_object* json_object_new_object |
( |
void |
|
) |
[read] |
Create a new empty object
- Returns:
- a json_object of type json_type_object
struct json_object* json_object_new_string |
( |
const 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
- Parameters:
-
- Returns:
- a json_object of type json_type_string
struct json_object* json_object_new_string_len |
( |
const char * |
s, |
|
|
int |
len | |
|
) |
| | [read] |
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
- 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 |
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
- Parameters:
-
Get the json_object associate with a given object field
- Parameters:
-
- Returns:
- the json_object associated with the given field name
Decrement the reference count of json_object and free if it reaches zero
- Parameters:
-
const char* json_object_to_json_string |
( |
struct json_object * |
obj |
) |
|
Stringify object to json format
- Parameters:
-
- Returns:
- a string in JSON format
void json_set_float_format |
( |
const char * |
f |
) |
|
Variable Documentation