2016-08-26 16 views
0

私は変数の1つとしてマップを持つクラスを持っています。 Jacksonパーサーはこれにマップできません。マップ変数へのジャクソンのマッピング

例 - コントローラで

Class A 
{ 
private String abc; 

private Map<String, String> xyz; 
... 

} 

ヌルとして取得XYZをデバッグするとき、私は

@RequestMapping(value = "/myval", method = RequestMethod.POST, consumes = 
{ MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE }) 
    @ResponseBody 
    public DGF updateCall(@RequestBody final A varName) 
{ 
.... 
} 



Json 
{ 
"abc":"tyui", 
"xyz":[{ 
"key" : "rtyu", 
"value" : "yui" 
}] 
... 
} 

を持っています。

+0

してください[編集]あなたの質問[MCVE]実際を含めます。 'xyz = new HashMap ()'のように 'xyz'を何かに設定したことはありますか? –

+0

@JonnyHenly - 私はxplainationを更新しました。意味があるかどうか教えてください。 – Abhilash

答えて

1

あなたはジャクソンのデシリアライズの作業を取得するためには、クラスAのための非パラメータのコンストラクタを持っている必要があります:

public A(){ 
abc=""; 
xyz = new HashMap<String, String>(); 
} 
+0

OPに 'Class A'のための非パラメータコンストラクタがないことをどうお知りしますか?コード中の 'xyz'の宣言に続いて、3つのドット(' ... ')があります。これは通常、コードを省略したことを意味します。彼らが答えるまで質問に答えるのを待ってください。 –

+0

あなたは正しいです。私のせい、ごめんなさい@JonnyHenly! – motagirl2

+0

それは大丈夫です:)、あなたは答えが正しいでしょう。 –

関連する問題