JSOnArrayフィルタリング
説明
リストResponseBodyをフロントエンドページにエラーを報告
の原因となる
TProjectXXXエンティティにOneToManyの属性が存在する
解決策
アタッチメント @Transient
@Transientは、この属性がデータベース・テーブルへのフィールドのマッピングではないことを示し、ORMフレームワークはこの属性を無視します.属性がデータベース・テーブルのフィールド・マッピングでない場合は、必ず@Transientと表示してください.そうしないと、ORMフレームワークのデフォルトの注釈は@Basicです.
//このフィールドがデータベース表にないことを示す
@Transient public int getAge() { return 1+1; }
Jackson関連: @JsonIgnoreProperties
この注釈はクラス注釈で、jsonシーケンス化時にjava beanのいくつかの属性を無視し、シーケンス化と逆シーケンス化が影響を受けます. @JsonIgnore
この注記は、上記の@JsonIgnorePropertiesと同様に機能する属性またはメソッド(属性上が望ましい)に使用されます. @JsonFormat
この注記は、@JsonFormat(pattern="yyyy-MM-dd HH-mm-ss")など、Dateタイプを直接目的のモードに変換するのに便利です. @JsonSerialize
この注記は、プロパティまたはgetterメソッドに使用され、doubleをシーケンス化するときに2桁の小数点を制限するなど、シーケンス化時にカスタムコードを埋め込むために使用されます. @JsonDeserialize
この注記は、上記の@JsonSerializeと同様に、逆シーケンス化時にカスタムコードを埋め込むための属性またはsetterメソッドに使用されます.
リストResponseBodyをフロントエンドページにエラーを報告
の原因となる
TProjectXXXエンティティにOneToManyの属性が存在する
解決策
SimplePropertyPreFilter
フィルタを使用して、必要なフィールドだけを残します./**
* : , json 。
*/
@JSONField(serialize=false)
private String name;
/**
* : transient, , json 。
*/
private transient String name;
/**
* : fastjson
*/
PropertyFilter profilter = new PropertyFilter(){
@Override
public boolean apply(Object object, String name, Object value) {
if(name.equalsIgnoreCase("last")){
//false last
return false;
}
return true;
}
};
json = JSON.toJSONString(user, profilter);
System.out.println(json);
/**
* ,
*/
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(TTown.class, "id","townname");
response.getWriter().write(JSONObject.toJSONString(townList,filter));
アタッチメント
@Transientは、この属性がデータベース・テーブルへのフィールドのマッピングではないことを示し、ORMフレームワークはこの属性を無視します.属性がデータベース・テーブルのフィールド・マッピングでない場合は、必ず@Transientと表示してください.そうしないと、ORMフレームワークのデフォルトの注釈は@Basicです.
//このフィールドがデータベース表にないことを示す
@Transient public int getAge() { return 1+1; }
Jackson関連:
この注釈はクラス注釈で、jsonシーケンス化時にjava beanのいくつかの属性を無視し、シーケンス化と逆シーケンス化が影響を受けます.
この注記は、上記の@JsonIgnorePropertiesと同様に機能する属性またはメソッド(属性上が望ましい)に使用されます.
この注記は、@JsonFormat(pattern="yyyy-MM-dd HH-mm-ss")など、Dateタイプを直接目的のモードに変換するのに便利です.
この注記は、プロパティまたはgetterメソッドに使用され、doubleをシーケンス化するときに2桁の小数点を制限するなど、シーケンス化時にカスタムコードを埋め込むために使用されます.
この注記は、上記の@JsonSerializeと同様に、逆シーケンス化時にカスタムコードを埋め込むための属性またはsetterメソッドに使用されます.