Якщо ви вже використовуєте JUnit, в останній версії зараз використовується Hamcrest. Це загальна рамка відповідності (особливо корисна для тестування одиниць), яку можна розширити, щоб створити нові відповідники.
Існує невелика бібліотека hamcrest-jsonз відкритим кодом, яка називається відповідниками JSON. Це добре документально підтверджено, протестовано та підтримано. Нижче наведено кілька корисних посилань:
Приклад коду з використанням об'єктів з бібліотеки JSON org.json.simple:
Assert.assertThat(
jsonObject1.toJSONString(),
SameJSONAs.sameJSONAs(jsonObject2.toJSONString()));
За бажанням ви можете (1) дозволити масиви "будь-якого порядку" та (2) ігнорувати додаткові поля.
Оскільки існує безліч бібліотек JSON для Java ( Jackson, GSON, json-libі т.д.), це корисно , що hamcrest-jsonпідтримує JSON текст (як java.lang.String), а також спочатку підтримують об'єкти з бібліотеки JSON Дугласа Крокфорд в org.json.
Нарешті, якщо ви не використовуєте JUnit, ви можете використовувати Hamcrest безпосередньо для тверджень. ( Я про це писав тут. )
toString()перетворення об'єкта вJSONрядок.