簡體   English   中英

將任意JSON從POST主體轉換為地圖JAVA REST

[英]Converting arbitrary JSON from POST body to a map JAVA REST

我目前正在使用REST Web服務。 方法之一是POST請求,其中用戶以JSON格式發送一些配置詳細信息。 配置參數的數量和參數本身將有所不同。 基本上,它看起來像:

{

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

或者看起來像這樣:

{  
"configParam1 ": "value1",

"configParam2" : "value2"

}

意味着鍵的數量和實際鍵本身將有所不同。 我需要將此JSON轉換為地圖。

我知道您可以通過創建POJO來做到這一點,並且它將根據類進行轉換,但是,鑒於參數有所不同,我無法將硬類定義轉換為POJO

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

通常,不要放置類似:

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

我可以這樣做:

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

} ?

有一個更好的方法嗎?

如果可以的話請幫忙。

更新:我用了GSON。

這是我找到答案的鏈接:

如何使用Gson將JSON轉換為HashMap?

我的功能看起來像這樣:

@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
}

您必須導入Gson類型令牌和我相信的類型。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM