diff --git a/src/main/java/org/json/JSONTokener.java b/src/main/java/org/json/JSONTokener.java index 2ddbee4..b9e4f19 100644 --- a/src/main/java/org/json/JSONTokener.java +++ b/src/main/java/org/json/JSONTokener.java @@ -527,7 +527,7 @@ public class JSONTokener { } private Object getValidNumberOrBooleanFromObject(Object value) { - if (value instanceof Number || value instanceof Boolean) { + if (value instanceof Number || value instanceof Boolean || value.equals(JSONObject.NULL)) { return value; } diff --git a/src/test/java/org/json/junit/JSONParserConfigurationTest.java b/src/test/java/org/json/junit/JSONParserConfigurationTest.java index d8f8c7e..97e55da 100644 --- a/src/test/java/org/json/junit/JSONParserConfigurationTest.java +++ b/src/test/java/org/json/junit/JSONParserConfigurationTest.java @@ -75,6 +75,13 @@ public class JSONParserConfigurationTest { assertEquals("Value is not surrounded by quotes: badString", je.getMessage()); } + @Test + public void allowNullInStrictMode() { + String expected = "[null]"; + JSONArray jsonArray = new JSONArray(expected, new JSONParserConfiguration().withStrictMode(true)); + assertEquals(expected, jsonArray.toString()); + } + @Test public void shouldHandleNumericArray() { String expected = "[10]";