mcl_json_util.h File Reference

Json utility module interface header file. More...

#include "mcl/mcl_common.h"
Include dependency graph for mcl_json_util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct mcl_json_t mcl_json_t
 This struct is used for json handling. More...
 

Enumerations

enum  E_MCL_JSON_TYPE { MCL_JSON_ARRAY, MCL_JSON_OBJECT }
 Json type definitions. More...
 

Functions

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_initialize (E_MCL_JSON_TYPE json_type, mcl_json_t **root)
 This function initializes the given root json. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_start_array (mcl_json_t *root, const char *array_name, mcl_json_t **json_array)
 This function creates an array in root. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_array_item (mcl_json_t *array, int index, mcl_json_t **item)
 This function gets the item at given index from array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_array_size (mcl_json_t *array, mcl_size_t *size)
 This function returns the size of array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_start_object (mcl_json_t *root, const char *object_name, mcl_json_t **json_object)
 This function creates an object in root. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_string (mcl_json_t *root, const char *object_name, const char *object_value)
 This function adds string to root which can be object or array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_uint (mcl_json_t *root, const char *object_name, const mcl_size_t number)
 This function adds integer number to root which can be object or array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_float (mcl_json_t *root, const char *object_name, const float number)
 This function adds floating number to root. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_double (mcl_json_t *root, const char *object_name, const double number)
 This function adds double number to root which can be object or array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_bool (mcl_json_t *root, const char *object_name, const mcl_bool_t bool_value)
 This function adds bool_value to root which can be object or array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_null (mcl_json_t *root, const char *object_name)
 This function adds null to root which can be object or array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_object (mcl_json_t *root, const char *object_name, mcl_json_t *object)
 This function adds object to root. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_item_to_array (mcl_json_t *root, mcl_json_t *object)
 This function adds object to root array. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_object_item (mcl_json_t *json_parent, const char *child_name, mcl_json_t **json_child)
 This function gives the value of json_child object, when the child_name in json_parent object is given. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_has_child (mcl_json_t *root, mcl_bool_t *result)
 This function checks whether root object has child object or not. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_number_value (mcl_json_t *json, mcl_int32_t *number_value)
 This function gets the number value of a given json object. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_double_value (mcl_json_t *json, double *double_value)
 This function gets the double value of a given json object. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_bool_value (mcl_json_t *json, mcl_bool_t *bool_value)
 This function gets the boolean value of a given json object. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_string (mcl_json_t *json_item, char **string_value)
 This function gets the string value of a given json object. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_to_string (mcl_json_t *root, char **json_string)
 This function gives the string of root in json format. More...
 
MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_parse (const char *json_string, mcl_json_t **root)
 This function parses the given string to the given json object. More...
 
MCL_EXPORT void mcl_json_util_finish_array (mcl_json_t **json_array)
 This function destroys json_array data struct. But the array still exists in root json object. More...
 
MCL_EXPORT void mcl_json_util_finish_object (mcl_json_t **json_object)
 This function destroys json_object data struct. But the object still exists in root json object. More...
 
MCL_EXPORT void mcl_json_util_destroy (mcl_json_t **root)
 This function destroys root. More...
 

Detailed Description

Json utility module interface header file.


Date
Feb 2, 2017 This module is used for json handling like json parsing and json generating.

Definition in file mcl_json_util.h.

Typedef Documentation

typedef struct mcl_json_t mcl_json_t

This struct is used for json handling.

Definition at line 29 of file mcl_json_util.h.

Enumeration Type Documentation

Json type definitions.

Enumerator
MCL_JSON_ARRAY 

Json array.

MCL_JSON_OBJECT 

Json object.

Definition at line 34 of file mcl_json_util.h.

Function Documentation

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_bool ( mcl_json_t root,
const char *  object_name,
const mcl_bool_t  bool_value 
)

This function adds bool_value to root which can be object or array.

Parameters
[in]rootRoot json. It can be object or array.
[in]object_nameName of the bool value which is going to be added to root.
[in]bool_valueBool value to be added to root.
Returns

Definition at line 392 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_bool().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_double ( mcl_json_t root,
const char *  object_name,
const double  number 
)

This function adds double number to root which can be object or array.

Parameters
[in]rootRoot json. It can be object or array.
[in]object_nameName of the name/value pair which is going to be added to root.
[in]numberValue of the name/value pair which is going to be added to root.
Returns

Definition at line 344 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_double().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_float ( mcl_json_t root,
const char *  object_name,
const float  number 
)

This function adds floating number to root.

Warning
If cJson library is used, this function is not supported.
Parameters
[in]rootRoot json object.
[in]object_nameName of the name/value pair which is going to be added to root.
[in]numberValue of the name/value pair which is going to be added to root.
Returns

Definition at line 319 of file json_util.c.

References DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_float().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_item_to_array ( mcl_json_t root,
mcl_json_t object 
)

This function adds object to root array.

Parameters
[in]rootRoot json array.
[in]objectobject which is going to be added to root array.
Returns

Definition at line 527 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_add_item_to_array(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_null ( mcl_json_t root,
const char *  object_name 
)

This function adds null to root which can be object or array.

Parameters
[in]rootRoot json. It can be object or array.
[in]object_nameName of the null value which is going to be added to root.
Returns

Definition at line 440 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_null().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_object ( mcl_json_t root,
const char *  object_name,
mcl_json_t object 
)

This function adds object to root.

Parameters
[in]rootRoot json object.
[in]object_nameName of object which is going to be going to be added to root.
[in]objectobject which is going to be added to root.
Returns

Definition at line 488 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_add_object(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_string ( mcl_json_t root,
const char *  object_name,
const char *  object_value 
)

This function adds string to root which can be object or array.

Note
if root is array, object_name must be null.
Parameters
[in]rootRoot json. It can be object or array.
[in]object_nameName of the name/value pair which is going to be added to root.
[in]object_valueValue of the name/value pair which is going to be added to root.
Returns

Definition at line 222 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_string().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_add_uint ( mcl_json_t root,
const char *  object_name,
const mcl_size_t  number 
)

This function adds integer number to root which can be object or array.

Note
if root is array, object_name must be null.
Parameters
[in]rootRoot json. It can be object or array.
[in]object_nameName of the name/value pair which is going to be added to root.
[in]numberValue of the name/value pair which is going to be added to root.
Returns

Definition at line 271 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_add_uint().

Here is the call graph for this function:

MCL_EXPORT void mcl_json_util_destroy ( mcl_json_t **  root)

This function destroys root.

Note
If root is destroyed, all child json objects in root are also destroyed.
Parameters
[out]rootRoot json object.

Definition at line 854 of file json_util.c.

References DEBUG_ENTRY, DEBUG_LEAVE, and json_util_destroy().

Here is the call graph for this function:

MCL_EXPORT void mcl_json_util_finish_array ( mcl_json_t **  json_array)

This function destroys json_array data struct. But the array still exists in root json object.

Note
To remove json_array from root, mcl_json_util_destroy must be called for root json object.
Parameters
[out]json_arrayJson array which exists in root.

Definition at line 818 of file json_util.c.

References DEBUG_ENTRY, DEBUG_LEAVE, and json_util_finish_array().

Here is the call graph for this function:

MCL_EXPORT void mcl_json_util_finish_object ( mcl_json_t **  json_object)

This function destroys json_object data struct. But the object still exists in root json object.

Note
To remove json_object from root, mcl_json_util_destroy must be called for root json object.
Parameters
[out]json_objectJson object which exists in root.

Definition at line 836 of file json_util.c.

References DEBUG_ENTRY, DEBUG_LEAVE, and json_util_finish_object().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_array_item ( mcl_json_t array,
int  index,
mcl_json_t **  item 
)

This function gets the item at given index from array.

Parameters
[in]arrayArray json object.
[in]indexIndex of the item to get from array.
[out]itemResult json object item.New memory space will be allocated for this parameter. Ownership passed to caller. Caller must free the space using MCL_FREE().
Returns

Definition at line 126 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_get_array_item().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_array_size ( mcl_json_t array,
mcl_size_t size 
)

This function returns the size of array.

Parameters
[in]arrayArray json object.
[out]sizeSize of array.
Returns

Definition at line 160 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_get_array_size(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_bool_value ( mcl_json_t json,
mcl_bool_t bool_value 
)

This function gets the boolean value of a given json object.

Parameters
[in]jsonRoot object of bool_value.
[in]bool_valueBoolean value of json.
Returns

Definition at line 660 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_get_bool_value(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_double_value ( mcl_json_t json,
double *  double_value 
)

This function gets the double value of a given json object.

Parameters
[in]jsonRoot object of double_value.
[in]double_valueValue of json.
Returns

Definition at line 638 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_get_double_value(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_number_value ( mcl_json_t json,
mcl_int32_t number_value 
)

This function gets the number value of a given json object.

Parameters
[in]jsonRoot object of number_value.
[in]number_valueValue of json.
Returns

Definition at line 616 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_get_number_value(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_object_item ( mcl_json_t json_parent,
const char *  child_name,
mcl_json_t **  json_child 
)

This function gives the value of json_child object, when the child_name in json_parent object is given.

Parameters
[in]json_parentRoot json object of json_child.
[in]child_nameName of the json_child object.
[out]json_childThe json object which is going to be received. New memory space will be allocated for this parameter. Ownership passed to caller. Caller must free the space using MCL_FREE().
Returns

Definition at line 549 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_get_object_item().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_get_string ( mcl_json_t json_item,
char **  string_value 
)

This function gets the string value of a given json object.

Parameters
[in]json_itemRoot object of string_value.
[in]string_valueString value of json_item. New memory space will be allocated for this parameter. Ownership passed to caller. Caller must free the space.
Returns

Definition at line 689 of file json_util.c.

References ASSERT_CODE_MESSAGE, ASSERT_NOT_NULL, string_t::buffer, DEBUG_ENTRY, DEBUG_LEAVE, json_util_get_string(), MCL_FREE, MCL_NULL, and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_has_child ( mcl_json_t root,
mcl_bool_t result 
)

This function checks whether root object has child object or not.

Parameters
[in]rootJson object which is going to be checked whether it has child or not.
[out]resultThis bool value is going to be made true, if @ root has child. Otherwise it is false.
Returns

Definition at line 587 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, json_util_has_child(), and MCL_OK.

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_initialize ( E_MCL_JSON_TYPE  json_type,
mcl_json_t **  root 
)

This function initializes the given root json.

Parameters
[in]json_typeType of the json.
[out]rootRoot json.
Returns

Definition at line 39 of file json_util.c.

References _convert_mcl_json_type_to_json_type(), ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_initialize().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_parse ( const char *  json_string,
mcl_json_t **  root 
)

This function parses the given string to the given json object.

Parameters
[in]json_stringString in json format. This given string must be null terminated. New memory space will be allocated for this parameter. Ownership passed to caller. Caller must free the space.
[out]rootjson_string is going to be parsed to this root object.
Returns

Definition at line 748 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_parse().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_start_array ( mcl_json_t root,
const char *  array_name,
mcl_json_t **  json_array 
)

This function creates an array in root.

Parameters
[in]rootRoot json object.
[in]array_nameName of the array which is going to be created in root.
[out]json_arrayJson array which is going to be created in root.
Returns

Definition at line 84 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_start_array().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_start_object ( mcl_json_t root,
const char *  object_name,
mcl_json_t **  json_object 
)

This function creates an object in root.

Parameters
[in]rootRoot json object.
[in]object_nameName of the object which is going to be created in root.
[out]json_objectJson object which is going to be created in root.
Returns

Definition at line 182 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_start_object().

Here is the call graph for this function:

MCL_EXPORT E_MCL_ERROR_CODE mcl_json_util_to_string ( mcl_json_t root,
char **  json_string 
)

This function gives the string of root in json format.

Parameters
[in]rootRoot json object.
[out]json_stringThe string of root in json format. New memory space will be allocated for this parameter. Ownership passed to caller. Caller must free the space.
Returns

Definition at line 722 of file json_util.c.

References ASSERT_NOT_NULL, DEBUG_ENTRY, DEBUG_LEAVE, and json_util_to_string().

Here is the call graph for this function: