Main Page   Data Structures   File List   Data Fields   Globals  

/home/mclark/src/json-c/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)

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

json_objectjson_object_get (struct json_object *this)
void json_object_put (struct json_object *this)
int json_object_is_type (struct json_object *this, enum json_type type)
enum json_type json_object_get_type (struct json_object *this)
char * json_object_to_json_string (struct json_object *this)
json_objectjson_object_new_object ()
lh_tablejson_object_get_object (struct json_object *this)
void json_object_object_add (struct json_object *this, char *key, struct json_object *val)
json_objectjson_object_object_get (struct json_object *this, char *key)
void json_object_object_del (struct json_object *this, char *key)
json_objectjson_object_new_array ()
array_listjson_object_get_array (struct json_object *this)
int json_object_array_length (struct json_object *this)
int json_object_array_add (struct json_object *this, struct json_object *val)
int json_object_array_put_idx (struct json_object *this, int idx, struct json_object *val)
json_objectjson_object_array_get_idx (struct json_object *this, int idx)
json_objectjson_object_new_boolean (boolean b)
boolean json_object_get_boolean (struct json_object *this)
json_objectjson_object_new_int (int i)
int json_object_get_int (struct json_object *this)
json_objectjson_object_new_double (double d)
double json_object_get_double (struct json_object *this)
json_objectjson_object_new_string (char *s)
json_objectjson_object_new_string_len (char *s, int len)
char * json_object_get_string (struct json_object *this)

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; \
for(struct lh_entry *entry = json_object_get_object(obj)->head; ({ if(entry) { key = (char*)entry->k; val = (struct json_object*)entry->v; } ; entry; }); entry = entry->next )
Iterate through all keys and values of an object
Parameters:
this  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 TRUE   ((boolean)1)
 


Typedef Documentation

typedef int boolean
 


Enumeration Type Documentation

enum json_type
 

Enumeration values:
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   this,
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:
this  the json_object instance
val  the json_object to be added

struct json_object* json_object_array_get_idx struct json_object   this,
int    idx
 

Get the element at specificed index of the array (a json_object of type json_type_array)

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

Get the length of a json_object of type json_type_array

Parameters:
this  the json_object instance
Returns:
an int

int json_object_array_put_idx struct json_object   this,
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:
this  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   this
 

Increment the reference count of json_object

Parameters:
this  the json_object instance

struct array_list* json_object_get_array struct json_object   this
 

Get the arraylist of a json_object of type json_type_array

Parameters:
this  the json_object instance
Returns:
an arraylist

boolean json_object_get_boolean struct json_object   this
 

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:
this  the json_object instance
Returns:
a boolean

double json_object_get_double struct json_object   this
 

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:
this  the json_object instance
Returns:
an double

int json_object_get_int struct json_object   this
 

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

struct lh_table* json_object_get_object struct json_object   this
 

Get the hashtable of a json_object of type json_type_object

Parameters:
this  the json_object instance
Returns:
a linkhash

char* json_object_get_string struct json_object   this
 

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:
this  the json_object instance
Returns:
a string

enum json_type json_object_get_type struct json_object   this
 

Get the type of the json_object

Parameters:
this  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   this,
enum json_type    type
 

Check if the json_object is of a given type

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

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
 

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
 

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
 

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  
 

Create a new empty object

Returns:
a json_object of type json_type_object

struct json_object* json_object_new_string 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

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
 

void json_object_object_add struct json_object   this,
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:
this  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   this,
char *    key
 

Delete the given json_object field

The reference count will be decremented for the deleted object

Parameters:
this  the json_object instance
key  the object field name

struct json_object* json_object_object_get struct json_object   this,
char *    key
 

Get the json_object associate with a given object field

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

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

Parameters:
this  the json_object instance

char* json_object_to_json_string struct json_object   this
 

Stringify object to json format

Parameters:
this  the json_object instance
Returns:
a string in JSON format


Variable Documentation

char* json_hex_chars
 

char* json_number_chars
 


Generated on Sat Aug 7 12:37:13 2004 for json-c by doxygen1.2.15