fix(#887): regression parsing array with non-string and boolean values

This commit is contained in:
rikkarth
2024-04-23 19:06:27 +01:00
parent 0bace72ced
commit 7cc19483fb
2 changed files with 31 additions and 19 deletions

View File

@@ -522,10 +522,10 @@ public class JSONTokener {
}
if (strictMode) {
boolean isBooleanOrNumeric = checkIfValueIsBooleanOrNumeric(string);
Object stringToVal = JSONObject.stringToValue(string);
if (isBooleanOrNumeric) {
return string;
if (stringToVal instanceof Number || stringToVal instanceof Boolean) {
return stringToVal;
}
throw new JSONException(String.format("Value is not surrounded by quotes: %s", string));
@@ -534,20 +534,6 @@ public class JSONTokener {
return JSONObject.stringToValue(string);
}
private boolean checkIfValueIsBooleanOrNumeric(Object valueToValidate) {
String stringToValidate = valueToValidate.toString();
if (stringToValidate.equals("true") || stringToValidate.equals("false")) {
return true;
}
try {
Double.parseDouble(stringToValidate);
return true;
} catch (NumberFormatException e) {
return false;
}
}
/**
* Skip characters until the next character is the requested character.
* If the requested character is not found, no characters are skipped.