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); + } + + @Test + public void testAssertWithNullValues5() throws JSONException { + JSONAssert.assertEquals("[{id:1},{id:2},{id:3},]" , "[{id:1},{id:2},{id:3},]" , true); + } + + @Test + public void testAssertWithNullValues6() throws JSONException { + JSONAssert.assertEquals("[{id:1},{id:2},]" , "[{id:1},{id:2},]" , true); + } + @Test + public void testAssertWithNullValues7() throws JSONException { + performAssertEqualsTestForMessageVerification("[{id:1},{id:2},{id:3},]", "[{id:1},{id:2},{id:3},{}]", true); + } + + @Test + public void testAssertWithNullValues8() throws JSONException { + JSONAssert.assertEquals("[{id:1},{id:2},{id:3},]" , "[{id:1},{id:2},{id:3},]" , true); + } + private void testPass(String expected, String actual, JSONCompareMode compareMode) throws JSONException {