json_util.h File Reference

Json utility module header file. More...

Include dependency graph for json_util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

MCL_LOCAL void json_util_initialize_json_library (void)
 
MCL_LOCAL mcl_error_t json_util_initialize (E_MCL_JSON_TYPE json_type, mcl_json_t **root)
 
MCL_LOCAL mcl_error_t json_util_start_array (mcl_json_t *root, const char *array_name, mcl_json_t **json_array)
 
MCL_LOCAL mcl_error_t json_util_get_array_item (mcl_json_t *array, int index, mcl_json_t **item)
 
MCL_LOCAL mcl_error_t json_util_get_array_size (mcl_json_t *array, mcl_size_t *size)
 
MCL_LOCAL mcl_error_t json_util_start_object (mcl_json_t *root, const char *object_name, mcl_json_t **json_object)
 
MCL_LOCAL mcl_error_t json_util_add_string (mcl_json_t *root, const char *object_name, const char *object_value)
 
MCL_LOCAL mcl_error_t json_util_add_uint (mcl_json_t *root, const char *object_name, const mcl_size_t number)
 
MCL_LOCAL mcl_error_t json_util_add_double (mcl_json_t *root, const char *object_name, const double number)
 
MCL_LOCAL mcl_error_t json_util_add_bool (mcl_json_t *root, const char *object_name, const mcl_bool_t bool_value)
 
MCL_LOCAL mcl_error_t json_util_add_null (mcl_json_t *root, const char *object_name)
 
MCL_LOCAL mcl_error_t json_util_add_object (mcl_json_t *root, const char *object_name, mcl_json_t *object)
 
MCL_LOCAL void json_util_add_item_to_array (mcl_json_t *root, mcl_json_t *object)
 
MCL_LOCAL mcl_error_t json_util_get_object_item (mcl_json_t *json_parent, const char *child_name, mcl_json_t **json_child)
 
MCL_LOCAL mcl_bool_t json_util_has_child (mcl_json_t *root)
 
MCL_LOCAL mcl_error_t json_util_get_number_value (mcl_json_t *json, mcl_int32_t *number_value)
 
MCL_LOCAL mcl_error_t json_util_get_double_value (mcl_json_t *json, double *double_value)
 
MCL_LOCAL mcl_error_t json_util_get_bool_value (mcl_json_t *json, mcl_bool_t *bool_value)
 
MCL_LOCAL mcl_error_t json_util_get_string (mcl_json_t *json, char **string_value)
 
MCL_LOCAL mcl_error_t json_util_to_string (mcl_json_t *root, char **json_string)
 
MCL_LOCAL mcl_error_t json_util_parse (const char *json_string, mcl_size_t size, mcl_json_t **root)
 
MCL_LOCAL mcl_error_t json_util_duplicate (const mcl_json_t *source_json, mcl_json_t **duplicated_json)
 
MCL_LOCAL void json_util_destroy (mcl_json_t **root)
 

Detailed Description

Json utility module header file.

Definition in file json_util.h.

Function Documentation

MCL_LOCAL mcl_error_t 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 json_util_get_object_item(), MCL_INVALID_PARAMETER, MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_OUT_OF_MEMORY, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_add_bool().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 364 of file json_util.c.

References _add_number(), MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _create_self_issued_jwt_payload(), and mcl_json_util_add_double().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL void 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.

Definition at line 554 of file json_util.c.

References MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_key_to_keys_array(), and mcl_json_util_add_item_to_array().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 455 of file json_util.c.

References json_util_get_object_item(), MCL_INVALID_PARAMETER, MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_add_null().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 512 of file json_util.c.

References json_util_get_object_item(), MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_add_object().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 273 of file json_util.c.

References json_util_get_object_item(), MCL_INVALID_PARAMETER, MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_OUT_OF_MEMORY, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_jwks(), _add_schema_to_jwt(), _compose_rsa_key_rotation_json(), _create_self_issued_jwt_header(), _create_self_issued_jwt_payload(), and mcl_json_util_add_string().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 336 of file json_util.c.

References _add_number(), MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_add_uint().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL void 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 913 of file json_util.c.

References MCL_NULL, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _compose_rsa_key_rotation_json(), _compose_rsa_onboarding_json(), _create_self_issued_jwt_header(), _create_self_issued_jwt_payload(), _process_registration_response_rsa_3072(), _process_registration_response_shared_secret(), core_processor_get_access_token(), jwt_destroy(), and mcl_json_util_destroy().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t json_util_duplicate ( const mcl_json_t source_json,
mcl_json_t **  duplicated_json 
)

This function duplicates source_json as duplicated_json.

Parameters
[in]source_jsonJson object to be duplicated.
[out]duplicated_jsonDuplicated json from source_json.
Returns

Definition at line 887 of file json_util.c.

References MCL_NULL, MCL_OK, MCL_OUT_OF_MEMORY, MCL_TRUE, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_duplicate().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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.
Returns

Definition at line 153 of file json_util.c.

References MCL_INVALID_PARAMETER, MCL_JSON_TYPE_MISMATCH, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_get_array_item().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 192 of file json_util.c.

References MCL_JSON_TYPE_MISMATCH, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_get_array_size().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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]jsonJson object to get the value.
[out]bool_valueValue of json.
Returns

Definition at line 716 of file json_util.c.

References MCL_FALSE, MCL_JSON_TYPE_MISMATCH, MCL_OK, MCL_TRUE, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_get_bool_value().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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]jsonJson object to get the value.
[out]double_valueValue of json.
Returns

Definition at line 683 of file json_util.c.

References MCL_JSON_TYPE_MISMATCH, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_get_double_value().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t json_util_get_number_value ( mcl_json_t json,
mcl_int32_t number_value 
)

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

Parameters
[in]jsonJson object to get the value.
[out]number_valueValue of json.
Returns

Definition at line 650 of file json_util.c.

References MCL_JSON_TYPE_MISMATCH, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_get_number_value().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t json_util_get_object_item ( mcl_json_t json_parent,
const char *  child_name,
mcl_json_t **  json_child 
)

This function gets 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 of json_child with MCL_FREE(*json_child).
Returns

Definition at line 581 of file json_util.c.

References MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_number(), _process_registration_response_rsa_3072(), _process_registration_response_shared_secret(), core_processor_get_access_token(), json_util_add_bool(), json_util_add_null(), json_util_add_object(), json_util_add_string(), json_util_start_array(), json_util_start_object(), and mcl_json_util_get_object_item().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t json_util_get_string ( mcl_json_t json,
char **  string_value 
)

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

Parameters
[in]jsonJson object to get the value.
[out]string_valueString value of json.
Returns

Definition at line 754 of file json_util.c.

References MCL_JSON_TYPE_MISMATCH, MCL_MALLOC, MCL_NULL, MCL_NULL_CHAR_SIZE, MCL_OK, MCL_OUT_OF_MEMORY, MCL_VERBOSE_ENTRY, MCL_VERBOSE_LEAVE, string_util_memcpy(), and string_util_strlen().

Referenced by _process_registration_response_rsa_3072(), _process_registration_response_shared_secret(), core_processor_get_access_token(), and mcl_json_util_get_string().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_bool_t json_util_has_child ( mcl_json_t root)

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.
Returns
  • MCL_TRUE if provided root has child.
  • MCL_FALSE if provided root does not have any child.

Definition at line 617 of file json_util.c.

References MCL_FALSE, MCL_NULL, MCL_TRUE, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by mcl_json_util_has_child().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 57 of file json_util.c.

References MCL_JSON_ARRAY, MCL_JSON_OBJECT, MCL_NULL, MCL_OK, MCL_OUT_OF_MEMORY, MCL_VERBOSE, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_key_to_keys_array(), _compose_rsa_key_rotation_json(), _compose_rsa_onboarding_json(), _create_self_issued_jwt_header(), _create_self_issued_jwt_payload(), json_util_start_array(), json_util_start_object(), and mcl_json_util_initialize().

Here is the caller graph for this function:

MCL_LOCAL void json_util_initialize_json_library ( void  )

This function initializes json library.

Supplying malloc, realloc and free functions to cJSON is performed in this function.

Definition at line 30 of file json_util.c.

References cjson_hooks, MCL_DEBUG_ENTRY, MCL_DEBUG_LEAVE, mcl_memory_free(), and mcl_memory_malloc().

Referenced by core_processor_initialize(), and mcl_json_util_library_initialize().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t json_util_parse ( const char *  json_string,
mcl_size_t  size,
mcl_json_t **  root 
)

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

Parameters
[in]json_stringString in json format.
[in]sizeSize of the buffer. If json_string is null terminated, size must be zero. Otherwise size value must be size of json_string.
[out]rootjson_string is going to be parsed to this root object.
Returns

Definition at line 844 of file json_util.c.

References MCL_FAIL, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _process_registration_response_rsa_3072(), _process_registration_response_shared_secret(), core_processor_get_access_token(), and mcl_json_util_parse().

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 107 of file json_util.c.

References json_util_get_object_item(), json_util_initialize(), MCL_JSON_ARRAY, MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_jwks(), _add_schema_to_jwt(), and mcl_json_util_start_array().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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 226 of file json_util.c.

References json_util_get_object_item(), json_util_initialize(), MCL_JSON_NAME_DUPLICATION, MCL_JSON_NON_EXISTING_CHILD, MCL_JSON_OBJECT, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _add_jwks(), and mcl_json_util_start_object().

Here is the call graph for this function:

Here is the caller graph for this function:

MCL_LOCAL mcl_error_t 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.
Returns
  • MCL_OK in case of success.
  • MCL_FAIL either the given json is invalid or memory can not be allocated for root.

Definition at line 809 of file json_util.c.

References MCL_ERROR, MCL_FAIL, MCL_NULL, MCL_OK, MCL_VERBOSE_ENTRY, and MCL_VERBOSE_LEAVE.

Referenced by _compose_rsa_key_rotation_json(), _compose_rsa_onboarding_json(), and mcl_json_util_to_string().

Here is the caller graph for this function: