ホームページ >Java >&#&チュートリアル >Javaで子の順序を無視してJSONオブジェクトが等しいかどうかを比較するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。