https://jansson.readthedocs.io/en/2.13/apiref.html\r
\r
Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.<BR>\r
- (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>\r
+ (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
**/\r
\r
@param[in] Value The integer to initialize to JSON value\r
\r
- @retval The created JSON value which contains a JSON number or NULL.\r
+ @retval The created JSON value which contains a JSON integer or NULL.\r
\r
**/\r
EDKII_JSON_VALUE\r
EFIAPI\r
-JsonValueInitNumber (\r
+JsonValueInitInteger (\r
IN INT64 Value\r
)\r
{\r
return (EDKII_JSON_VALUE)json_boolean (Value);\r
}\r
\r
+/**\r
+ The function is used to initialize a JSON value which contains a TRUE JSON value,\r
+ or NULL on error.\r
+\r
+ NULL JSON value is kept as static value, and no need to do any cleanup work.\r
+\r
+ @retval The created JSON TRUE value.\r
+\r
+**/\r
+EDKII_JSON_VALUE\r
+EFIAPI\r
+JsonValueInitTrue (\r
+ VOID\r
+ )\r
+{\r
+ return (EDKII_JSON_VALUE)json_true();\r
+}\r
+\r
+/**\r
+ The function is used to initialize a JSON value which contains a FALSE JSON value,\r
+ or NULL on error.\r
+\r
+ NULL JSON value is kept as static value, and no need to do any cleanup work.\r
+\r
+ @retval The created JSON FALSE value.\r
+\r
+**/\r
+EDKII_JSON_VALUE\r
+EFIAPI\r
+JsonValueInitFalse (\r
+ VOID\r
+ )\r
+{\r
+ return (EDKII_JSON_VALUE)json_false();\r
+}\r
+\r
/**\r
The function is used to initialize a JSON value which contains a new JSON NULL,\r
or NULL on error.\r
return json_is_string ((json_t *) Json);\r
}\r
\r
+/**\r
+ The function is used to return if the provided JSON value contains a JSON integer.\r
+\r
+ @param[in] Json The provided JSON value.\r
+\r
+ @retval TRUE The JSON value is contains JSON integer.\r
+ @retval FALSE The JSON value doesn't contain a JSON integer.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+JsonValueIsInteger (\r
+ IN EDKII_JSON_VALUE Json\r
+ )\r
+{\r
+ return json_is_integer ((json_t *) Json);\r
+}\r
+\r
/**\r
The function is used to return if the provided JSON value contains a JSON number.\r
\r
IN EDKII_JSON_VALUE Json\r
)\r
{\r
- return json_is_integer ((json_t *) Json);\r
+ return json_is_number ((json_t *) Json);\r
}\r
\r
/**\r
return json_is_boolean ((json_t *) Json);\r
}\r
\r
+/**\r
+ The function is used to return if the provided JSON value contains a TRUE value.\r
+\r
+ @param[in] Json The provided JSON value.\r
+\r
+ @retval TRUE The JSON value contains a TRUE value.\r
+ @retval FALSE The JSON value doesn't contain a TRUE value.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+JsonValueIsTrue (\r
+ IN EDKII_JSON_VALUE Json\r
+ )\r
+{\r
+ if (json_is_true ((json_t *)Json)) {\r
+ return TRUE;\r
+ }\r
+ return FALSE;\r
+}\r
+\r
+/**\r
+ The function is used to return if the provided JSON value contains a FALSE value.\r
+\r
+ @param[in] Json The provided JSON value.\r
+\r
+ @retval TRUE The JSON value contains a FALSE value.\r
+ @retval FALSE The JSON value doesn't contain a FALSE value.\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+JsonValueIsFalse (\r
+ IN EDKII_JSON_VALUE Json\r
+ )\r
+{\r
+ if (json_is_false ((json_t *)Json)) {\r
+ return TRUE;\r
+ }\r
+ return FALSE;\r
+}\r
/**\r
The function is used to return if the provided JSON value contains a JSON NULL.\r
\r
}\r
\r
/**\r
- The function is used to retrieve the associated integer in a number type JSON value.\r
+ The function is used to retrieve the associated integer in a integer type JSON value.\r
\r
- The input JSON value should not be NULL or contain no JSON number, otherwise it will\r
+ The input JSON value should not be NULL or contain no JSON integer, otherwise it will\r
ASSERT() and return 0.\r
\r
@param[in] Json The provided JSON value.\r
\r
- @retval Return the associated number in JSON value.\r
+ @retval Return the associated integer in JSON value.\r
\r
**/\r
INT64\r
EFIAPI\r
-JsonValueGetNumber (\r
+JsonValueGetInteger (\r
IN EDKII_JSON_VALUE Json\r
)\r
{\r
- ASSERT (Json != NULL && JsonValueIsNumber (Json));\r
- if (Json == NULL || !JsonValueIsNumber (Json)) {\r
+ ASSERT (Json != NULL && JsonValueIsInteger (Json));\r
+ if (Json == NULL || !JsonValueIsInteger (Json)) {\r
return 0;\r
}\r
\r
Caller needs to cleanup the root value by calling JsonValueFree().\r
\r
@param[in] String The NULL terminated CHAR8 string to convert.\r
+ @param[in] Flags Flags for loading JSON string.\r
+ @param[in] Error Returned error status.\r
\r
@retval Array JSON value or object JSON value, or NULL when any error occurs.\r
\r
EDKII_JSON_VALUE\r
EFIAPI\r
JsonLoadString (\r
- IN CONST CHAR8* String\r
+ IN CONST CHAR8* String,\r
+ IN UINT64 Flags,\r
+ IN EDKII_JSON_ERROR *Error\r
)\r
{\r
- json_error_t JsonError;\r
-\r
- return (EDKII_JSON_VALUE) json_loads ((const char *)String, 0, &JsonError);\r
+ return (EDKII_JSON_VALUE) json_loads ((const char *)String, Flags, (json_error_t *)Error);\r
}\r
\r
/**\r
@retval Iterator pointer\r
**/\r
VOID *\r
+EFIAPI\r
JsonObjectIteratorNext (\r
IN EDKII_JSON_VALUE JsonValue,\r
IN VOID *Iterator\r
return json_object_iter_next(JsonValue, Iterator);\r
}\r
\r
+/**\r
+ Returns the key of iterator pointing.\r
+\r
+ @param[in] Iterator Iterator pointer\r
+ @retval Key\r
+**/\r
+CHAR8 *\r
+EFIAPI\r
+JsonObjectIteratorKey (\r
+ IN VOID *Iterator\r
+)\r
+{\r
+ return (CHAR8 *)json_object_iter_key(Iterator);\r
+}\r
+\r
+/**\r
+ Returns the pointer of iterator by key.\r
+\r
+ @param[in] Key The key of interator pointer.\r
+ @retval Pointer to interator\r
+**/\r
+VOID *\r
+EFIAPI\r
+JsonObjectKeyToIterator (\r
+ IN CHAR8 *Key\r
+)\r
+{\r
+ return json_object_key_to_iter(Key);\r
+}\r
+\r
/**\r
Returns the json type of this json value.\r
\r