2013-10-18 46 views
0

嗨我試過用google搜索,但是找不到我想實現的解決方案。如何將Json請求作爲Json對象在Jersey Rest服務中使用

實例映射JSON到Java對象,我們做

@POST 
@Consumes(application/json) 
@Produces(application/json) 
public Response createUpdateDeleteManualClinicalData(MyJavaPojo definedPojo) { 
    // this maps any json to a java object, but in my case I am dealing with generic json structure 
} 

我想實現的是保持它作爲JSON對象本身

public Response createUpdateDeleteManualClinicalData(JSONObject json) 

解決方法:我可以得到的數據爲純文本和將其轉換爲json。但它是我想要避免的從我身邊開過的一個開銷。

編輯:我打開使用任何Json庫,如JsonNode等...只要我得到Json對象結構,直接從我身邊沒有字符串JSON的開銷。這應該是常見的用法,或者我錯過了一些核心概念。

回答

1

這是一個直接的解決方案,我碰巧忽視......我的壞一種可能的選擇。 澤西比我想象的更聰明的方式......很想知道層下面發生了什麼魔法

@POST 
@Consumes(application/json) 
@Produces(application/json) 
public Response createUpdateDeleteManualClinicalData(JsonNode jsonNode) { 
//jsoNode body casted automatically into JsonNode 
} 
0

爲什麼你使用JSONObject如果你能給出更多的細節,我可以給出更具吸引力的解決方案。但我的解決方案,你可以使用hashmap,如果你想與json的鍵值關係。

+0

我看到您的解決方案,以有效載荷轉換爲地圖很感興趣,但我也想直接擁有JSON對象,我可以傳遞給我的基礎設施中想要處理相同請求的不同來源。 – AkD

0

如果您使用的配置與web.xml setup gists for Jersey1 and Jackson2相同,那麼您可以按照以下方式進行操作。這比使用的JSONObject

@POST 
@Path("/sub_path2") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public Map<String,Object> saveMethod(Map<String,Object> params ) throws IOException { 

    // Processing steps 

    return params; 
} 
相關問題