2017-01-13 3 views
0

Springのコントローラにlong値の配列を送信しようとしています。私のコントローラでJacksonエラーがオブジェクトをリストに変換しています

 { 
     "locationIds": [ 
       45, 
       121, 
       89 
      ] 
    } 

Iはリストにこのオブジェクトを変換しながら、私はエラーを持っ

@RequestBody Object locationIds 

としてリクエストボディを定義して、コードスニペットは

List<Long> myObjects = mapper.readValue(jsonInString, new TypeReference<Object>(){}); 

誤差は以下の通りである

java.util.LinkedHashMap cannot be cast to java.util.List. 

答えて

1

あなたが私たちの場合あなたはなぜオブジェクトマッパーを明示的に使用していますか? SpringフレームワークのMappingJackson2HttpMessageConverterは、JSONペイロードを型付きBeanまたは型なしHashMapインスタンスにバインドできます。 mapper.readValueに入っているエラーがあなたにヒントを与えています。以下のようにテストすることができます。

ObjectMapper mapper = new ObjectMapper(); 
String js = "{\"locationIds\":[45,121,89]}"; 
Map<String,List<Long>> myObjects = mapper.readValue(js, new TypeReference<Object>(){}); 
List<Long> list = myObjects.get("locationIds"); 
関連する問題