From 898dd5a39d83627de2b0108276f546081ee931b9 Mon Sep 17 00:00:00 2001 From: rikkarth Date: Tue, 23 Apr 2024 20:52:02 +0100 Subject: [PATCH] fix(#887): allow null value strict mode --- src/main/java/org/json/JSONTokener.java | 2 +- .../java/org/json/junit/JSONParserConfigurationTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/json/JSONTokener.java b/src/main/java/org/json/JSONTokener.java index 2ddbee436..b9e4f19dd 100644 --- a/src/main/java/org/json/JSONTokener.java +++ b/src/main/java/org/json/JSONTokener.java @@ -527,7 +527,7 @@ private Object parsedUnquotedText(char c, boolean strictMode) { } 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 d8f8c7e09..97e55da97 100644 --- a/src/test/java/org/json/junit/JSONParserConfigurationTest.java +++ b/src/test/java/org/json/junit/JSONParserConfigurationTest.java @@ -75,6 +75,13 @@ public void givenInvalidString_testStrictModeTrue_shouldThrowJsonException() { 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]";