diff --git a/src/json.hpp b/src/json.hpp index e91ed371..76e10c09 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -4716,9 +4716,9 @@ basic_json_parser_59: get_token(); expect(lexer::token_type::name_separator); - // parse value + // parse and add value get_token(); - result[key] = parse_internal(); + result.m_value.object->emplace(key, parse_internal()); } while (last_token == lexer::token_type::value_separator); @@ -4753,8 +4753,8 @@ basic_json_parser_59: get_token(); } - // parse value - result.push_back(parse_internal()); + // parse and add value + result.m_value.array->emplace_back(parse_internal()); } while (last_token == lexer::token_type::value_separator); diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index bd4ab7a5..eab94c89 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -4022,9 +4022,9 @@ class basic_json get_token(); expect(lexer::token_type::name_separator); - // parse value + // parse and add value get_token(); - result[key] = parse_internal(); + result.m_value.object->emplace(key, parse_internal()); } while (last_token == lexer::token_type::value_separator); @@ -4059,8 +4059,8 @@ class basic_json get_token(); } - // parse value - result.push_back(parse_internal()); + // parse and add value + result.m_value.array->emplace_back(parse_internal()); } while (last_token == lexer::token_type::value_separator);