diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp index eb1f3d189..951f1a287 100644 --- a/include/nlohmann/detail/conversions/from_json.hpp +++ b/include/nlohmann/detail/conversions/from_json.hpp @@ -798,10 +798,10 @@ inline void from_json(const BasicJsonType& j, std::basic_string ret(s.get_allocator()); - ret.reserve(size); + ret.resize(size); for (std::size_t i = 0; i < size; ++i) { - ret.push_back(static_cast(static_cast(data[i]))); + ret[i] = static_cast(static_cast(data[i])); } s = std::move(ret); } diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 45c9b92a6..3a887e376 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -6941,10 +6941,10 @@ inline void from_json(const BasicJsonType& j, std::basic_string ret(s.get_allocator()); - ret.reserve(size); + ret.resize(size); for (std::size_t i = 0; i < size; ++i) { - ret.push_back(static_cast(static_cast(data[i]))); + ret[i] = static_cast(static_cast(data[i])); } s = std::move(ret); }