![](/img/trans.png)
[英]How to invoke a REST call (POST with JSON body) from Camel in Java DSL
[英]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。
這是我找到答案的鏈接:
我的功能看起來像這樣:
@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.