ホームページ  >  記事  >  Java  >  子の順序を無視して JSON オブジェクトをテストするにはどうすればよいですか?

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

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

How Can You Test JSON Objects Ignoring Child Order?

子の順序を無視した JSON オブジェクトの等価性のテスト

Web サービスから返された JSON データをテストする場合、JSON 解析ライブラリに対応していることが不可欠です子要素の順序を無視して 2 つの JSON オブジェクトを比較する方法。これは単体テストにとって重要であり、特定の子の順序に依存せずに、JSON コンテンツが期待される形式と一致していることを確認します。

JSONAssert: 効果的なソリューション

さまざまな JSON ライブラリの中で, Skyscreamer の JSONAssert は、子の順序を無視して JSON オブジェクトを比較できる機能が際立っています。非厳密モードには次の利点があります:

  • オブジェクトの拡張性: {id:1} のような期待値は {id:1,moredata:'x'} と一致します。 .
  • 緩やかな配列順序: ['dog','cat'] と ['cat','dog'] のような配列は等しいと見なされます。

使用例

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

この例では、expectedJSONString は予期される JSON、actualDataString は実際の JSON であり、非厳密モードを有効にするために isStrict が false に設定されています。

結論

JSONAssert は、子の順序を無視して JSON オブジェクトをテストするための堅牢なソリューションを提供します。非厳格モードは柔軟性と精度を提供し、単体テストの脆弱性を軽減します。

以上が子の順序を無視して JSON オブジェクトをテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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