Попробовал и вот что получилось - фигня, код стал сложнее. Нужно каждую строку завернуть и между ними поставить равно, хотя json большие

package pw.avvero.spring.sandbox.jsonassert
 
import com.fasterxml.jackson.databind.ObjectMapper
import org.skyscreamer.jsonassert.JSONAssert
import spock.lang.Specification
 
import static pw.avvero.spring.sandbox.jsonassert.AssertableJson.json
 
class JsonAssertTests extends Specification {
 
    def "Compare two jsons with JSONAssert"() {
        expect:
        JSONAssert.assertEquals(expected, actual, false)
    }
 
    def "Compare two jsons with JSONAssert"() {
        expect:
        json(expected) == json(actual)
    }
 
    def "Compare two jsons with JSONAssert"() {
        expect:
        JSONAssert.assertEquals("""{
          "model": "gpt-4",
          "messages": [{
            "role": "user", 
            "content": "Hi"
          }]
        }""", """{
          "model": "gpt-4",
          "messages": [{
            "role": "user", 
            "content": "Hi!"
          }]
        }""", false)
    }
 
    def "Compare two jsons with JSONAssert"() {
        expect:
        json("""{
          "model": "gpt-4",
          "messages": [{
            "role": "user", 
            "content": "Hi"
          }]
        }""") == json("""{
          "model": "gpt-4",
          "messages": [{
            "role": "user", 
            "content": "Hi!"
          }]
        }""")
    }
}
package pw.avvero.spring.sandbox.jsonassert;
 
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.skyscreamer.jsonassert.JSONAssert;
 
import java.util.Objects;
 
@RequiredArgsConstructor
public class AssertableJson {
 
    private final String value;
 
    public static AssertableJson json(String value) {
        return new AssertableJson(value);
    }
 
    @SneakyThrows
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) {
            throw new UnsupportedOperationException("Incorrect type, expected " + getClass());
        }
        AssertableJson that = (AssertableJson) o;
        JSONAssert.assertEquals(this.value, that.value, false);
        return true;
    }
 
    @Override
    public int hashCode() {
        return Objects.hash(value);
    }
}

jsonassertidea