2016-10-20 32 views
0

我正在使用jackson爲我的REST Web服務創建JSON如何將某個類的某些字段分組到一個JSON中,並將其他字段分組到另一個JSON中

我有一個類像下面 -

Foo類 -

public class Foo extends Bar { 
     private String id; 
     private String name; 
     private List<Test> testing; 
    } 

酒吧類 -

public class Bar { 
     private String username; 
    } 

測試類 -

public class Test { 
     private String id; 
     private String desc; 
    } 

所需JSON輸出我打算擁有e是如下 -

{ 
    "username" : "ABC", 
    "data": { 
      "id" : "123". 
      "name" : "XYZ" 
      } 
    "testing" : [ 
       { 
        "id" : "test1", 
        "desc" : "description1" 
       } 
       ] 
} 

我嘗試了所有可能的annotations,並希望避免只爲特定格式創建JSON創建Wrapper類。 使用getters和setters從數據庫填充類Foo

注 - 我是新來jackson

+0

目前還不清楚你在問什麼。你是否想要JSON看起來像你發佈的內容,你需要創建類將產生? – rmlan

+0

我想從Foo類獲取JSON輸出。 – JHS

回答

0

我會建議它更容易創建一個包裝類,而不是嘗試任何其他方式侵入的問題。 您可以創建一個包裝類取輸入,如:

public class WrapperClasss { 

private String val; 

public String getVal() { 
    return val; 
} 
public void setVall(String val) { 
    this.val = val; 
} 
} 

然後你的代碼可以是這樣的:

@Path("/path") 
public class SomeWebService { 
    @POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON) 
    public ResponseObject getRegister(WrapperClasss wrapperClasss) { 
     MainClass classs = new MainClass(); 
     ResponseObject responseObject = classs.someMethod(wrapperClasss.getVal()); 
     return responseObject; 
    } 

} 

這就是它。這裏的Response Object只是一個包含你的輸出的對象。這將被傑克遜轉換爲JSON。

public class ResponseObject{ 
    private String username; 
    Data data; 
    private List<Test> testing; 

    //respective getter and setters 
} 
相關問題