ホームページ >Java >&#&チュートリアル >子の順序を考慮せずに Java で JSON オブジェクトを比較する方法

子の順序を考慮せずに Java で JSON オブジェクトを比較する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-05 03:23:02387ブラウズ

How to Compare JSON Objects in Java Without Child Order Considerations?

Java での子の順序を考慮しない JSON オブジェクトの比較

Web サービスからの JSON 応答の単体テストでは、多くの場合、JSON オブジェクトの比較が必要になります。ただし、org.json などの標準ライブラリは参照比較を実行しますが、子オブジェクトの順序が異なると失敗します。

解決策: JSONAssert ライブラリ

Skyscreamer の JSONAssert ライブラリは、 JSON オブジェクトを比較するための堅牢なソリューション。非厳密モードでは、次のような柔軟性が提供されます。

  • オブジェクトの拡張性を可能にする: 期待値 {id:1} は実際の値 {id:1,moredata:'x'}
  • と一致します。緩やかな配列順序を無視する: ['dog','cat'] は ['cat','dog']

と等しくなります。使用例:

<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);
}</code>

JSONAssert の明確な失敗メッセージにより、特に大きな JSON オブジェクトの場合、効率的なデバッグが容易になります。

以上が子の順序を考慮せずに Java で JSON オブジェクトを比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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