json_object.h File Reference


Defines

#define JSON_OBJECT_DEF_HASH_ENTIRES   16
#define FALSE   ((boolean)0)
#define TRUE   ((boolean)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 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

struct json_objectjson_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)
char * json_object_to_json_string (struct json_object *obj)
struct json_objectjson_object_new_object (void)
struct lh_tablejson_object_get_object (struct json_object *obj)
void json_object_object_add (struct json_object *obj, char *key, struct json_object *val)
struct json_objectjson_object_object_get (struct json_object *obj, char *key)
void json_object_object_del (struct json_object *obj, char *key)
struct json_objectjson_object_new_array (void)
struct array_listjson_object_get_array (struct json_object *obj)
int json_object_array_length (struct json_object *obj)
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_objectjson_object_array_get_idx (struct json_object *obj, int idx)
struct json_objectjson_object_new_boolean (boolean b)
boolean json_object_get_boolean (struct json_object *obj)
struct json_objectjson_object_new_int (int i)
int json_object_get_int (struct json_object *obj)
struct json_objectjson_object_new_double (double d)
double json_object_get_double (struct json_object *obj)
struct json_objectjson_object_new_string (char *s)
struct json_objectjson_object_new_string_len (char *s, int len)
char * json_object_get_string (struct json_object *obj)

Variables

char * json_number_chars
char * json_hex_chars

Define Documentation

#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)
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

#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

#define TRUE   ((boolean)1)


Typedef Documentation

typedef int boolean


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 


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,
enum json_type  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 ( 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 ( 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

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,
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,
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

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


Variable Documentation


Generated on Mon Jan 5 15:01:30 2009 for json-c by  doxygen 1.5.6