特に、Web サービスから返される JSON の単体テスト用に、子の順序を無視して 2 つの JSON オブジェクトの比較をサポートする JSON 解析ライブラリを探しています。
主要な JSON ライブラリのいずれかがこれをサポートしていますか? org.json ライブラリは単純に参照比較を行います。
ベストアンサー1
スカイスクリーマーズをお試しくださいJSONアサート。
非厳密モードには、脆弱性を軽減する 2 つの大きな利点があります。
- オブジェクトの拡張性 (例: 期待値が{id:1}の場合、 {id:1,moredata:'x'}も合格します。)
- 緩い配列順序 (例: ['dog','cat']==['cat','dog'])
厳密モードでは、json-lib のテスト クラスのように動作します。
テストは次のようになります。
@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);
}
JSONAssert.assertEquals() 呼び出しのパラメーターは、expectedJSONString、actualDataString、およびisStrictです。
結果メッセージは非常に明確であり、これは非常に大きな JSON オブジェクトを比較するときに重要です。