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 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]";