[解決済み】Javaで2つのJSONオブジェクトが子順序を無視して等しいかテストする【非公開
2022-04-04 17:21:24
質問
私は、特にWebサービスから戻ってくるJSONをユニットテストするために、子順序を無視して2つのJSONオブジェクトを比較することをサポートするJSONパージングライブラリを探しています。
主要なJSONライブラリの中で、これをサポートしているものはありますか?org.jsonライブラリは、単に参照比較を行うだけです。
どのように解決するのですか?
一般的なアーキテクチャのポイントとして、私は通常、特定のシリアライズ形式への依存が、ストレージ/ネットワーク層を超えて広がっていくことを避けるよう助言します。したがって、まず最初に、JSON形式ではなく、独自のアプリケーション オブジェクト間の同等性をテストすることを検討するようお勧めします。
とはいえ、現在私は ジャクソン をざっと読んでみたところ、彼らの ObjectNode.equals() の実装は、あなたが望むセットメンバーシップの比較を行うことを示唆しています。
public boolean equals(Object o)
{
if (o == this) return true;
if (o == null) return false;
if (o.getClass() != getClass()) {
return false;
}
ObjectNode other = (ObjectNode) o;
if (other.size() != size()) {
return false;
}
if (_children != null) {
for (Map.Entry<String, JsonNode> en : _children.entrySet()) {
String key = en.getKey();
JsonNode value = en.getValue();
JsonNode otherValue = other.get(key);
if (otherValue == null || !otherValue.equals(value)) {
return false;
}
}
}
return true;
}
関連
-
[解決済み] パラメータ[変数]の不正な修飾子;finalのみが許可される[closed]。
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] 要素 'beans' の宣言が見つかりません。
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] java.io.IOException。DER長の短い読み取り
-
[解決済み] Javaで2次元の配列を作成するためのシンタックス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] この配列の中の数字を入れ替えるには、何が足りないのでしょうか?ジャバ
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Javaにおけるシンボリック参照