ホームページ >Java >&#&チュートリアル >Javaで子の順序を無視してJSONオブジェクトが等しいかどうかを比較するにはどうすればよいですか?

Javaで子の順序を無視してJSONオブジェクトが等しいかどうかを比較するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 00:44:02720ブラウズ

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

Java で子の順序を無視しながら JSON オブジェクトの同等性をテストする

単体テストでは、Web サービスから返された 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。