2017-09-07 5 views
0

現在、私はREST Webサービスを使用しています。メソッドの1つが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?

私のfuncitonは次のようになります。

希望があれば誰にでもおすすめです。

関連する問題