Here's a quick way to compare two JSON String using Jackson. While we could always do a simple String compare, this method allows us to keep the expected JSON in a readable format, such as pretty-printed in a test resource:
import com.fasterxml.jackson.databind.ObjectMapper class JsonAssert { static ObjectMapper mapper = new ObjectMapper() static void areEqual(String json1, String json2) { def tree1 = mapper.readTree json1 def tree2 = mapper.readTree json2 assert tree1.equals(tree2) } }
The above can be called from an expect:
or then:
block in a Spock specification.