From 81a3602db2b2eff8ab9c6d8ff64ce562e3f5e923 Mon Sep 17 00:00:00 2001 From: Zihan Xu Date: Tue, 7 Dec 2021 20:12:53 -0600 Subject: [PATCH] fixed issue #130 --- .../jsonassert/JSONCompareResult.java | 3 ++ .../skyscreamer/jsonassert/JSONParser.java | 28 +++++++++++++------ .../comparator/DefaultComparator.java | 1 + .../jsonassert/JSONAssertTest.java | 19 ++++++++++++- 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/skyscreamer/jsonassert/JSONCompareResult.java b/src/main/java/org/skyscreamer/jsonassert/JSONCompareResult.java index 28406fbe..39ad414b 100644 --- a/src/main/java/org/skyscreamer/jsonassert/JSONCompareResult.java +++ b/src/main/java/org/skyscreamer/jsonassert/JSONCompareResult.java @@ -245,6 +245,9 @@ private static String describe(Object value) { } else if (value instanceof JSONObject) { return "a JSON object"; } else { + if (value == null) { + return "null"; + } return value.toString(); } } diff --git a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java index 882d25da..5738e60f 100644 --- a/src/main/java/org/skyscreamer/jsonassert/JSONParser.java +++ b/src/main/java/org/skyscreamer/jsonassert/JSONParser.java @@ -39,19 +39,29 @@ private JSONParser() {} * @throws JSONException JSON parsing error */ public static Object parseJSON(final String s) throws JSONException { - if (s.trim().startsWith("{")) { + if (s.trim().startsWith("{")&&s.trim().endsWith("}")) { return new JSONObject(s); } - else if (s.trim().startsWith("[")) { + else if (s.trim().startsWith("[")&&s.trim().endsWith("]")) { return new JSONArray(s); - } else if (s.trim().startsWith("\"") - || s.trim().matches(NUMBER_REGEX)) { - return new JSONString() { - @Override - public String toJSONString() { - return s; + } else if (s.trim().startsWith("\"") && s.trim().endsWith("\"") + || s.trim().matches(NUMBER_REGEX)) { + int pos = 0; + boolean hascolon = false; + while(pos("\\d")) )); } - + @Test + public void testAssertWithNullValues1() throws JSONException { + performAssertEqualsTestForMessageVerification("[{id:1},]", "[{id:1},{}]", true); + } + + @Test + public void testAssertWithNullValues2() throws JSONException { + JSONAssert.assertNotEquals("[{id:1},]", "[{id:2},]", true); + } + @Test + public void testAssertWithNullValues3() throws JSONException { + JSONAssert.assertEquals("[{id:1},]" , "[{id:1},]" , true); + } + @Test + public void testAssertWithNullValues4() throws JSONException { + performAssertEqualsTestForMessageVerification("[{id:1},{id:2},]", "[{id:1},{id:2},{}]", true); + } + private void testPass(String expected, String actual, JSONCompareMode compareMode) throws JSONException {