JsonUnit icon indicating copy to clipboard operation
JsonUnit copied to clipboard

Pretty-printing JSON in IntelliJ diffs

Open joshuajaharwood opened this issue 10 months ago • 2 comments

Is your feature request related to a problem? Please describe. When comparing two JSON strings when a difference is found (when you click <Click to see difference> in IntelliJ), they are printed without any whitespace which can make visual inspection harder.

Describe the solution you'd like The ability to pretty-print both JSON strings for display in the IntelliJ differ would make visual comparison much easier.

Describe alternatives you've considered None

Additional context Tested on v2.38.0, Java 8.

joshuajaharwood avatar Apr 11 '24 14:04 joshuajaharwood

Duplicate of https://github.com/lukas-krecan/JsonUnit/issues/44. I understand it would be a useful feature, but currently I do not have any capacity to implement it, sorry.

lukas-krecan avatar Apr 12 '24 18:04 lukas-krecan

Hi @joshuajaharwood, I am currently looking into that. I am curious what would be your expectation, we can to the following

  1. Just normalize the JSONs, for example, order keys alphabetically and pretty print the JSONs. The donwside would be that the order of fields would change, is that acceptable?
  2. We can normalize the actual value based on expected. Instead of sorting fields alphabetically, we would make sure the order in the actual value is the same as in the expected one.
  3. We can put the differences to the top. Instead of sorting, we can start printing the JSON from the parts that are different. This may be useful for larger JSONs
  4. We can only print the parts that are different. What option would you prefer and why? Thank you

lukas-krecan avatar Jul 07 '24 13:07 lukas-krecan

Hi @lukas-krecan, deepest apologies for the late response.

I'd probably prefer option 3 given that I have large JSON blobs I need to compare for any differences - it'd make seeing differences at a glance much easier. I wouldn't mind if the order of fields changed, I only really care about the differences between actual and expected. Having to scroll through the entire thing to see differences when you're working with hundreds of differing JSON assertions can be troublesome!

Kind regards, Josh

joshuajaharwood avatar Oct 02 '24 17:10 joshuajaharwood