diff --git a/redfish-core/lib/aggregation_service.hpp b/redfish-core/lib/aggregation_service.hpp
index 1cd2e68..83953fd 100644
--- a/redfish-core/lib/aggregation_service.hpp
+++ b/redfish-core/lib/aggregation_service.hpp
@@ -81,7 +81,7 @@
         member["@odata.id"] =
             crow::utility::urlFromPieces("redfish", "v1", "AggregationService",
                                          "AggregationSources", sat.first);
-        members.push_back(std::move(member));
+        members.emplace_back(std::move(member));
     }
     asyncResp->res.jsonValue["Members@odata.count"] = members.size();
     asyncResp->res.jsonValue["Members"] = std::move(members);
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index dcbff2d..4e030d2 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -427,7 +427,7 @@
     replace["target"] =
         "/redfish/v1/CertificateService/Actions/CertificateService.ReplaceCertificate";
     nlohmann::json::array_t allowed;
-    allowed.push_back("PEM");
+    allowed.emplace_back("PEM");
     replace["CertificateType@Redfish.AllowableValues"] = std::move(allowed);
     actions["#CertificateService.GenerateCSR"]["target"] =
         "/redfish/v1/CertificateService/Actions/CertificateService.GenerateCSR";
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index c64d27c..dc6afd8 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -453,14 +453,14 @@
                 nlohmann::json::array_t computerSystems;
                 nlohmann::json::object_t system;
                 system["@odata.id"] = "/redfish/v1/Systems/system";
-                computerSystems.push_back(std::move(system));
+                computerSystems.emplace_back(std::move(system));
                 asyncResp->res.jsonValue["Links"]["ComputerSystems"] =
                     std::move(computerSystems);
 
                 nlohmann::json::array_t managedBy;
                 nlohmann::json::object_t manager;
                 manager["@odata.id"] = "/redfish/v1/Managers/bmc";
-                managedBy.push_back(std::move(manager));
+                managedBy.emplace_back(std::move(manager));
                 asyncResp->res.jsonValue["Links"]["ManagedBy"] =
                     std::move(managedBy);
                 getChassisState(asyncResp);
@@ -748,9 +748,9 @@
     parameter["Required"] = true;
     parameter["DataType"] = "String";
     nlohmann::json::array_t allowed;
-    allowed.push_back("PowerCycle");
+    allowed.emplace_back("PowerCycle");
     parameter["AllowableValues"] = std::move(allowed);
-    parameters.push_back(std::move(parameter));
+    parameters.emplace_back(std::move(parameter));
 
     asyncResp->res.jsonValue["Parameters"] = std::move(parameters);
 }
diff --git a/redfish-core/lib/hypervisor_system.hpp b/redfish-core/lib/hypervisor_system.hpp
index e524145..ec59140 100644
--- a/redfish-core/lib/hypervisor_system.hpp
+++ b/redfish-core/lib/hypervisor_system.hpp
@@ -825,7 +825,7 @@
         nlohmann::json::array_t managedBy;
         nlohmann::json::object_t manager;
         manager["@odata.id"] = "/redfish/v1/Managers/bmc";
-        managedBy.push_back(std::move(manager));
+        managedBy.emplace_back(std::move(manager));
         asyncResp->res.jsonValue["Links"]["ManagedBy"] = std::move(managedBy);
         asyncResp->res.jsonValue["EthernetInterfaces"]["@odata.id"] =
             "/redfish/v1/Systems/hypervisor/EthernetInterfaces";
@@ -998,9 +998,9 @@
         parameter["Required"] = true;
         parameter["DataType"] = "String";
         nlohmann::json::array_t allowed;
-        allowed.push_back("On");
+        allowed.emplace_back("On");
         parameter["AllowableValues"] = std::move(allowed);
-        parameters.push_back(std::move(parameter));
+        parameters.emplace_back(std::move(parameter));
         asyncResp->res.jsonValue["Parameters"] = std::move(parameters);
         });
 }
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 134ecb6..1319eca 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -259,12 +259,12 @@
         parameter["DataType"] = "String";
 
         nlohmann::json::array_t allowableValues;
-        allowableValues.push_back("GracefulRestart");
-        allowableValues.push_back("ForceRestart");
+        allowableValues.emplace_back("GracefulRestart");
+        allowableValues.emplace_back("ForceRestart");
         parameter["AllowableValues"] = std::move(allowableValues);
 
         nlohmann::json::array_t parameters;
-        parameters.push_back(std::move(parameter));
+        parameters.emplace_back(std::move(parameter));
 
         asyncResp->res.jsonValue["Parameters"] = std::move(parameters);
         });
@@ -1992,7 +1992,7 @@
         nlohmann::json::array_t managerForServers;
         nlohmann::json::object_t manager;
         manager["@odata.id"] = "/redfish/v1/Systems/system";
-        managerForServers.push_back(std::move(manager));
+        managerForServers.emplace_back(std::move(manager));
 
         asyncResp->res.jsonValue["Links"]["ManagerForServers"] =
             std::move(managerForServers);
@@ -2026,7 +2026,7 @@
             boost::urls::url chassiUrl = crow::utility::urlFromPieces(
                 "redfish", "v1", "Chassis", chassisId);
             managerObj["@odata.id"] = chassiUrl;
-            managerForChassis.push_back(std::move(managerObj));
+            managerForChassis.emplace_back(std::move(managerObj));
             aRsp->res.jsonValue["Links"]["ManagerForChassis"] =
                 std::move(managerForChassis);
             aRsp->res.jsonValue["Links"]["ManagerInChassis"]["@odata.id"] =
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index 907f6cf..ce147a8 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -120,7 +120,7 @@
     asyncResp->res.jsonValue["Id"] = header->registryPrefix;
     asyncResp->res.jsonValue["Registry"] = header->id;
     nlohmann::json::array_t languages;
-    languages.push_back("en");
+    languages.emplace_back("en");
     asyncResp->res.jsonValue["Languages@odata.count"] = languages.size();
     asyncResp->res.jsonValue["Languages"] = std::move(languages);
     nlohmann::json::array_t locationMembers;
diff --git a/redfish-core/lib/redfish_v1.hpp b/redfish-core/lib/redfish_v1.hpp
index a9b81e4..b3174fb 100644
--- a/redfish-core/lib/redfish_v1.hpp
+++ b/redfish-core/lib/redfish_v1.hpp
@@ -88,7 +88,7 @@
         nlohmann::json::object_t member;
         member["@odata.id"] = crow::utility::urlFromPieces(
             "redfish", "v1", "JsonSchemas", schema);
-        members.push_back(std::move(member));
+        members.emplace_back(std::move(member));
     }
     json["Members"] = std::move(members);
     json["Members@odata.count"] = schemas.size();
diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp
index cb27075..7bec478 100644
--- a/redfish-core/lib/trigger.hpp
+++ b/redfish-core/lib/trigger.hpp
@@ -107,7 +107,7 @@
         trigger["Severity"] = severity;
         trigger["DwellTime"] = *duration;
         trigger["Value"] = value;
-        triggers.push_back(std::move(trigger));
+        triggers.emplace_back(std::move(trigger));
     }
 
     return {std::move(triggers)};
