Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Java by (4k points)

I'm looking for a JSON parsing library that supports comparing two JSON objects ignoring child order, specifically for unit testing JSON returning from a web service.

Do any of the major JSON libraries support this? The org.json library simply does a reference comparison.

1 Answer

0 votes
by (46k points)

As a general design point, I normally advise against letting dependencies on a distinct serialization format bleed out beyond your storage/networking layer; thus, I'd first suggest that you consider examining equality between your application objects willingly than their JSON manifestations.

Having said that, I'm currently a big fan of Jackson which my timely read of their ObjectNode.equals() implementation hints does the set membership association that you want:

public boolean equals(Object o)

{

    if (o == this) return true;

    if (o == null) return false;

    if (o.getClass() != getClass()) {

        return false;

    }

    ObjectNode other = (ObjectNode) o;

    if (other.size() != size()) {

        return false;

    }

    if (_children != null) {

        for (Map.Entry<String, JsonNode> en : _children.entrySet()) {

            String key = en.getKey();

            JsonNode value = en.getValue();

            JsonNode otherValue = other.get(key);

            if (otherValue == null || !otherValue.equals(value)) {

                return false;

            }

        }

    }

    return true;

}

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
asked Nov 12, 2019 in Java by Anvi (10.2k points)
0 votes
1 answer
asked Oct 14, 2019 in Java by Anvi (10.2k points)
0 votes
1 answer

Browse Categories

...