チケット #35184

JSONHintアノテーションのignoreが効かない

登録: 2015-05-23 06:01 最終更新: 2015-05-23 14:17

報告者:
(匿名)
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
動いてるけど?

詳細

対象フィールドに対して、@JSONHint(ignore = true)をつけてもencodeした際にフィールドが出力されてしまう。 設定したモジュールのListオブジェクトをencodeすると中身が出てしまう。 そもそも、使用の仕方が悪いのであれば指摘のほどよろしくお願い致します。

実行例

List<Hoge> hogeList = new ArrayList<Hoge>();

Hoge1 hoge1 = new Hoge1(); hoge1.id = 1L; hoge1.name = "xxxxxx";

Hoge hoge = new Hoge(); hoge.id = 1L; hoge.hoge1 = hoge1;

hogeList.add(hoge);

JSON.encode(hogeList);

対象のクラス @Entity public class Hoge {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long id;
@JSONHint(ignore = true) @ManyToOne public Hoge1 hoge1;

}

@Entity public class Hoge1 {

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) public Long id;
public String name;

}


ライブラリーのバージョン version 1.3.6

添付ファイルリスト

添付ファイルはありません

チケットの履歴 (3 件中 3 件表示)

2015-05-23 06:01 更新者: None
  • 新しいチケット "JSONHintアノテーションのignoreが効かない" が作成されました
2015-05-23 14:17 更新者: hizuno
  • 解決法なし から 動いてるけど? に更新されました
コメント

こちらでも確認しましたが残念ながら再現できませんでした。もしかすると、@EntityなどJPAアノテーションを付けたクラスに setter/getter を自動的に生成するようなプロセッサを噛ましていませんでしょうか(lombokなど)。

現在の JSONIC は setter/getter メソッドとフィールドが両方ある場合、setter/getterメソッドが優先されるため、フィールド側のヒントが無視されます。次バージョンでは対応することも検討中ですが、現バージョンでは互換性の問題から対応方法を含め検討中です。

2015-05-24 07:12 更新者: None
コメント

publicフィールドのみになります。 Fwは、Play2のJavaを使用しています。 色々と試行錯誤して試してみたのですが、挙動が変わらなかったので、チケットとして切らせて頂きました。

hizuno への返信

こちらでも確認しましたが残念ながら再現できませんでした。もしかすると、@EntityなどJPAアノテーションを付けたクラスに setter/getter を自動的に生成するようなプロセッサを噛ましていませんでしょうか(lombokなど)。 現在の JSONIC は setter/getter メソッドとフィールドが両方ある場合、setter/getterメソッドが優先されるため、フィールド側のヒントが無視されます。次バージョンでは対応することも検討中ですが、現バージョンでは互換性の問題から対応方法を含め検討中です。

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする