Macros | Typedefs | Enumerations | Functions | Variables
json_object.h File Reference
This graph shows which files directly or indirectly include this file:

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
}
 

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
 

Macro Definition 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)
void * v
Definition: linkhash.h:56
struct lh_entry * next
Definition: linkhash.h:60
void * k
Definition: linkhash.h:52
struct lh_table * json_object_get_object(struct json_object *obj)
Definition: json_object.c:259
struct egsl_val val
Definition: egsl.h:18
Definition: linkhash.h:48

Iterate through all keys and values of an object

Parameters
objthe json_object instance
keythe local name for the char* key variable defined in the body
valthe 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
objthe json_object instance
iterthe 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
objthe json_object instance
valthe 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)

Parameters
objthe json_object instance
idxthe index to get the element at
Returns
the json_object at the specified index (or NULL)

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

Parameters
objthe json_object instance
Returns
an int

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.

Parameters
objthe json_object instance
idxthe index to insert the element at
valthe 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

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

Parameters
objthe json_object instance
Returns
an arraylist

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.

Parameters
objthe json_object instance
Returns
a boolean

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.

Parameters
objthe json_object instance
Returns
an double

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.

Parameters
objthe json_object instance
Returns
an int

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

Parameters
objthe json_object instance
Returns
a linkhash

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.

Parameters
objthe json_object instance
Returns
a string

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

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

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

Parameters
objthe json_object instance
typeone 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

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

Parameters
ba boolean TRUE or FALSE (0 or 1)
Returns
a json_object of type json_type_boolean

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

Parameters
dthe double
Returns
a json_object of type json_type_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

Parameters
ithe integer
Returns
a json_object of type json_type_int

Definition at line 332 of file json_object.c.

struct json_object* json_object_new_object ( void  )

Create a new empty object

Returns
a json_object of type json_type_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

Parameters
sthe string
Returns
a json_object of type json_type_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

Parameters
objthe json_object instance
keythe object field name (a private copy will be duplicated)
vala 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

Parameters
objthe json_object instance
keythe 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

Parameters
objthe json_object instance
keythe object field name
Returns
the json_object associated with the given 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

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

Parameters
objthe json_object instance
Returns
a string in JSON format

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.

Variable Documentation

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.



csm
Author(s): Andrea Censi
autogenerated on Tue May 11 2021 02:18:23