diff --git a/src/backend/json.h b/src/backend/json.h index f8af1965..6a582dec 100644 --- a/src/backend/json.h +++ b/src/backend/json.h @@ -64,9 +64,10 @@ namespace loot { boost::replace_all(json, "\": ~", "\": null"); // Using the definition at . - std::regex numbers("\": \"(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\"", std::regex::ECMAScript); + // Version numbers should be kept as strings though. + std::regex numbers("\"(?!version)(\\w+)\": \"(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\"", std::regex::ECMAScript); - json = std::regex_replace(json, numbers, "\": $1"); + json = std::regex_replace(json, numbers, "\"$1\": $2"); return json; }