summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RedfishPkg/Include/Library/JsonLib.h17
-rw-r--r--RedfishPkg/Library/JsonLib/JsonLib.c24
2 files changed, 41 insertions, 0 deletions
diff --git a/RedfishPkg/Include/Library/JsonLib.h b/RedfishPkg/Include/Library/JsonLib.h
index 8f31d93..ea25229 100644
--- a/RedfishPkg/Include/Library/JsonLib.h
+++ b/RedfishPkg/Include/Library/JsonLib.h
@@ -657,6 +657,23 @@ JsonObjectSetValue (
);
/**
+ The function is used to delete a JSON key from the given JSON bject,
+
+ @param[in] JsonObj The provided JSON object.
+ @param[in] Key The key of the JSON value to be deleted.
+
+ @retval EFI_ABORTED Some error occur and operation aborted.
+ @retval EFI_SUCCESS The JSON value has been deleted from this JSON object.
+
+**/
+EFI_STATUS
+EFIAPI
+JsonObjectDelete (
+ IN EDKII_JSON_OBJECT JsonObj,
+ IN CONST CHAR8 *Key
+ );
+
+/**
The function is used to get the number of elements in a JSON array. Returns or 0 if JsonArray
is NULL or not a JSON array.
diff --git a/RedfishPkg/Library/JsonLib/JsonLib.c b/RedfishPkg/Library/JsonLib/JsonLib.c
index 6c3373d..b7be4d6 100644
--- a/RedfishPkg/Library/JsonLib/JsonLib.c
+++ b/RedfishPkg/Library/JsonLib/JsonLib.c
@@ -811,6 +811,30 @@ JsonObjectSetValue (
}
/**
+ The function is used to delete a JSON key from the given JSON bject
+
+ @param[in] JsonObj The provided JSON object.
+ @param[in] Key The key of the JSON value to be deleted.
+
+ @retval EFI_ABORTED Some error occur and operation aborted.
+ @retval EFI_SUCCESS The JSON value has been deleted from this JSON object.
+
+**/
+EFI_STATUS
+EFIAPI
+JsonObjectDelete (
+ IN EDKII_JSON_OBJECT JsonObj,
+ IN CONST CHAR8 *Key
+ )
+{
+ if (json_object_del ((json_t *)JsonObj, (const char *)Key) != 0) {
+ return EFI_ABORTED;
+ } else {
+ return EFI_SUCCESS;
+ }
+}
+
+/**
The function is used to get the number of elements in a JSON array. Returns or 0 if JsonArray
is NULL or not a JSON array.