>Java >java지도 시간 >Java에서 하위 순서를 무시하면서 JSON 객체의 동등성을 비교하는 방법은 무엇입니까?

Java에서 하위 순서를 무시하면서 JSON 객체의 동등성을 비교하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-05 00:44:02659검색

How to Compare JSON Objects for Equality While Ignoring Child Order in Java?

Java에서 하위 순서를 무시하면서 JSON 개체의 동일성 테스트

단위 테스트에서는 웹 서비스에서 반환된 JSON 개체를 비교하는 것이 일반적입니다. 기대값에. 그러나 일부 JSON 라이브러리는 엄격한 참조 비교를 수행할 수 있으며, 이는 하위 순서의 차이로 인해 불안정하고 실패할 수 있습니다.

이를 위해 Skyscreamer JSONAssert 라이브러리가 솔루션을 제공합니다. 비엄격 모드는 다음을 통해 유연성을 허용합니다.

  • 객체 확장성 허용: 예상 객체는 비교 실패 없이 추가 필드를 포함할 수 있습니다.
  • 느슨한 배열 순서 허용: 배열은 순서가 어긋나도 여전히 비교를 통과합니다.

반대로 엄격 모드는 json-lib의 테스트 클래스와 유사하게 더 보수적으로 동작합니다.

JSONAssert를 활용하려면 테스트를 다음과 같이 구성할 수 있습니다. 다음은 다음과 같습니다.

<code class="java">@Test
public void testGetFriends() {
    JSONObject data = getRESTData("/friends/367.json");
    String expected = "{friends:[{id:123,name:\"Corby Page\"}"
        + ",{id:456,name:\"Solomon Duskis\"}]}";
    JSONAssert.assertEquals(expected, data, false); // Non-strict mode
}</code>

JSONAssert.assertEquals()의 매개변수에는 예상되는 JSON 문자열, 실제 데이터 문자열 및 엄격 모드 여부를 나타내는 플래그가 포함됩니다.

JSONAssert는 명확한 오류 메시지를 제공합니다. 이는 대규모 JSON 개체를 비교할 때 단위 테스트의 견고성을 보장하는 데 매우 중요합니다.

위 내용은 Java에서 하위 순서를 무시하면서 JSON 객체의 동등성을 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.