json_object.h File Reference

This graph shows which files directly or indirectly include this file:

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_objectjson_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_objectjson_object_get (struct json_object *obj)
struct array_listjson_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_tablejson_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_objectjson_object_new_array (void)
struct json_objectjson_object_new_boolean (boolean b)
struct json_objectjson_object_new_double (double d)
struct json_objectjson_object_new_int (int i)
struct json_objectjson_object_new_object (void)
struct json_objectjson_object_new_string (const char *s)
struct json_objectjson_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_objectjson_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 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   ) 
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)

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:
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 Documentation

typedef int boolean

Definition at line 28 of file json_object.h.


Enumeration Type Documentation

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.


Function Documentation

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

Parameters:
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)

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:
obj the json_object instance
Returns:
an int
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.

Parameters:
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

Parameters:
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

Parameters:
obj the json_object instance
Returns:
an arraylist
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.

Parameters:
obj the json_object instance
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:
obj the json_object instance
Returns:
an double
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.

Parameters:
obj the json_object instance
Returns:
an int
struct lh_table* json_object_get_object ( struct json_object obj  )  [read]

Get the hashtable of a json_object of type json_type_object

Parameters:
obj the json_object instance
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:
obj the json_object instance
Returns:
a string
enum json_type json_object_get_type ( struct json_object obj  ) 

Get the type of the json_object

Parameters:
obj the json_object instance
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_array

Returns:
a 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

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:
d the double
Returns:
a json_object of type json_type_double
struct json_object* json_object_new_int ( int  i  )  [read]

Create a new empty json_object of type json_type_int

Parameters:
i the integer
Returns:
a json_object of type json_type_int
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:
s the string
Returns:
a json_object of type json_type_string
struct json_object* json_object_new_string_len ( const char *  s,
int  len 
) [read]
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

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:
obj the json_object instance
key the object field name
struct json_object* json_object_object_get ( struct json_object obj,
const char *  key 
) [read]

Get the json_object associate with a given object field

Parameters:
obj the json_object instance
key the object field name
Returns:
the json_object associated with the given field name
void json_object_put ( struct json_object obj  ) 

Decrement the reference count of json_object and free if it reaches zero

Parameters:
obj the json_object instance
const char* json_object_to_json_string ( struct json_object obj  ) 

Stringify object to json format

Parameters:
obj the json_object instance
Returns:
a string in JSON format
void json_set_float_format ( const char *  f  ) 

Variable Documentation

const char* json_hex_chars
const char* json_number_chars
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines


csm
Author(s): Ivan Dryanovski, William Morris
autogenerated on Fri Jan 11 09:15:58 2013