diff --git a/redfish-core/include/utils/json_utils.hpp b/redfish-core/include/utils/json_utils.hpp
index 38f43fa..2eeace1 100644
--- a/redfish-core/include/utils/json_utils.hpp
+++ b/redfish-core/include/utils/json_utils.hpp
@@ -66,6 +66,18 @@
 
 template <typename Type> constexpr bool is_vector_v = is_vector<Type>::value;
 
+template <typename Type> struct is_std_array : std::false_type
+{
+};
+
+template <typename Type, std::size_t size>
+struct is_std_array<std::array<Type, size>> : std::true_type
+{
+};
+
+template <typename Type>
+constexpr bool is_std_array_v = is_std_array<Type>::value;
+
 template <typename Type>
 void unpackValue(nlohmann::json& jsonValue, const std::string& key,
                  crow::Response& res, Type& value)
@@ -117,6 +129,25 @@
 
         value = std::move(jsonValue);
     }
+    else if constexpr (is_std_array_v<Type>)
+    {
+        if (!jsonValue.is_array())
+        {
+            messages::propertyValueTypeError(res, res.jsonValue.dump(), key);
+            return;
+        }
+        if (jsonValue.size() != value.size())
+        {
+            messages::propertyValueTypeError(res, res.jsonValue.dump(), key);
+            return;
+        }
+        size_t index = 0;
+        for (const auto& val : jsonValue.items())
+        {
+            unpackValue<typename Type::value_type>(val.value(), key, res,
+                                                   value[index++]);
+        }
+    }
     else if constexpr (is_vector_v<Type>)
     {
         if (!jsonValue.is_array())
