2017-09-07 57 views
0

我目前正在使用REST Web服務。其中一種方法是POST請求,其中用戶以JSON的格式發送一些配置詳細信息。配置參數的數量和參數本身會有所不同。基本上,它看起來是這樣的:將POST主體中的任意JSON轉換爲映射JAVA REST

{ 

"configParam1" : "value1", 
"configParam2" : "value2", 
"configParam3" : "value3" 
} 

,或者它可能看起來像這樣:

{ 
"configParam1 ": "value1", 

"configParam2" : "value2" 

} 

意味着鍵和實際鍵的數量自己也會有所不同。 我需要將此JSON轉換爲地圖。

我知道,你可以通過創建一個POJO這樣做,它會根據類進行轉換,但是,考慮到參數變化,我不能有一個很難定義的類轉換爲。

有什麼辦法可以解決這個問題嗎?

一般而言,而不是把類似的:

@POST 
@Produces(MediaType.APPLICATIONJSON) 
@Consumes(MediaType.APPLICATIONJSON) 
methodName(MyClassObject postJSONresponse){ 
} 

可我只是做:

@POST 
@Produces(MediaType.APPLICATIONJSON) . 
@Consumes(MediaType.APPLICATIONJSON) . 
methodName(Map (string,string) postJSONrepsonse){ 

} ? 

有沒有更好的方式來做到這一點?

如果可以,請幫助。

回答

0

更新: 我使用了GSON。

這裏是我找到了答案鏈接:你必須輸入GSON令牌類型和類型,我相信

@POST 
@Produces(MediaType.APPLICATIONJSON) 
@Consumes(MediaType.APPLICATIONJSON) 
methodName(String json){ 
// convert the string to a Map using GSON: 

Type type = new TypeToken<Map<String, String>>(){}.getType(); 
Map<String, String> myMap = 
gson.fromJson({'k1':'apple','k2':'orange'}", type); 

//now myMap is a map (of type : linkedTreeMap, which implements map 
} 

How can I convert JSON to a HashMap using Gson?

我的功能可按看起來是這樣的。

希望這可以幫助任何需要它的人:)

相關問題