From 5faab6bef720b4440b9df9a618643788648c2617 Mon Sep 17 00:00:00 2001 From: mspiess Date: Sun, 4 Jan 2026 12:24:22 +0100 Subject: [PATCH 1/2] Remove superfluous `else`s after guard statements --- src/main/java/org/skyscreamer/jsonassert/JSONParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java index a70af96c..f2e6437a 100644 --- a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java +++ b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java @@ -41,9 +41,10 @@ public static Object parseJSON(final String s) { if (s.trim().startsWith("{")) { return new JSONObject(s); } - else if (s.trim().startsWith("[")) { + if (s.trim().startsWith("[")) { return new JSONArray(s); - } else if (s.trim().startsWith("\"") + } + if (s.trim().startsWith("\"") || s.trim().matches(NUMBER_REGEX)) { return new JSONString() { @Override From 8bd5b320df3dfe2a73c362371a17477248588aea Mon Sep 17 00:00:00 2001 From: mspiess Date: Sun, 4 Jan 2026 12:38:35 +0100 Subject: [PATCH 2/2] Add support for comparing booleans --- src/main/java/org/skyscreamer/jsonassert/JSONParser.java | 4 +++- .../java/org/skyscreamer/jsonassert/JSONAssertTest.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java index f2e6437a..904daf49 100644 --- a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java +++ b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java @@ -27,6 +27,7 @@ public class JSONParser { // "A number can be represented as integer, real, or floating point. JSON does not support octal or hex // ... [or] NaN or Infinity". private static final String NUMBER_REGEX = "-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?"; + private static final String BOOLEAN_REGEX = "true|false"; private JSONParser() {} @@ -45,7 +46,8 @@ public static Object parseJSON(final String s) { return new JSONArray(s); } if (s.trim().startsWith("\"") - || s.trim().matches(NUMBER_REGEX)) { + || s.trim().matches(NUMBER_REGEX) + || s.trim().matches(BOOLEAN_REGEX)) { return new JSONString() { @Override public String toJSONString() { diff --git a/src/test/java/org/skyscreamer/jsonassert/JSONAssertTest.java b/src/test/java/org/skyscreamer/jsonassert/JSONAssertTest.java index e17f684b..2a927805 100644 --- a/src/test/java/org/skyscreamer/jsonassert/JSONAssertTest.java +++ b/src/test/java/org/skyscreamer/jsonassert/JSONAssertTest.java @@ -64,6 +64,14 @@ public void testNumber() { testFail("310.1e-1", "31.01", STRICT); // should fail though numbers are the same? } + @Test + public void testBoolean() { + testPass("true", "true", STRICT); + testFail("true", "false", STRICT); + testPass("false", "false", STRICT); + testFail("false", "true", STRICT); + } + @Test public void testSimple() { testPass("{id:1}", "{id:1}", STRICT);