Jsonシーケンス化問題
1287 ワード
Jsonシーケンス化の利点の1つは,複雑なオブジェクトをjsonオブジェクトに変換し,フロントに転送できることである.
例えば、Ajax要求は、関数dataを返す.theClass.user.username .直接jsで呼び出します.
複数対1、または複数対多の関係に遭遇すると、オブジェクトマッピングは制限されません.
jsonシーケンス化は無限死サイクルでシーケンス化されます
例:theClass----->User----->theClass----->User----->theClass......死んでしまいます.
以下の方法でjsonは1つのループのみをシーケンス化し,無制限にシーケンス化することはできない.
注意:ここではフォーマットは固定されており、set、getでのみ注釈できます.他の方法では実験ができないようです.
親に対する注記は@JsonManagedReferenceです.
サブクラスに対する注記は@JsonBackReferenceです.
/**
*
* ( > ?)
*/
public class TheClass{
private List<User> users;
@JsonManagedReference
public User getUser{
.....
}
@JsonManagedReference
public void setUser{
.....
}
}
/**
*
* student ( > ?)
*/
public class User{
private TheClass tcls;
@JsonBackReference
public TheClass getTcls{
.....
}
@JsonBackReference
public void setTcls{
.....
}
}