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{
       .....
    }  
    
}