finding json diff fails using JSONAssert

后端 未结 1 751
清酒与你
清酒与你 2021-01-25 21:10

I was hoping to use Jackson to find JSON diff but it does not give detailed error messages.

So I tried using JSOnAssert to find the diff between two JSON strings.

相关标签:
1条回答
  • 2021-01-25 21:58

    I tried to email the address at http://jsonassert.skyscreamer.org/ but got a

    The following message to jsonassert-dev@skyscreamer.org was undeliverable. The reason for the problem: 5.1.0 - Unknown address error 550-"5.1.1 The email account that you tried to reach does not exist

    So I tried ZJsonPatch. I like the fact that using Jackson with it, the ordering of the members does not matter. In other words, I first try to check for equality using Jackson. Jackson is ordering independent. Then if it fails, I use ZJsonPatch to tell me what the diff is.

    {"op":"replace","path":"/data/0/successfulIds/1","value":"B9"}
    

    which handles nested JSON well.

    ObjectMapper mapper = new ObjectMapper();
    JsonNode expected = mapper.readTree(expectedJsonResponse);
    JsonNode actual = mapper.readTree(actualJsonResponse);
    
    try {
        assertEquals(expected, actual);
    } catch (AssertionError ae) {
        JsonNode patch = JsonDiff.asJson(actual, expected);
        throw new Exception(patch.toString(), ae);
    }
    
    0 讨论(0)
提交回复
热议问题