2017-12-24 17 views
0

SCALA リストまたはシーケンスをSprint @RestControllerに戻すにはどうしたらいいですか?リスト戻り値は、が正しくシリアル化されていません。Spring SCALA Rest Restroller内のリスト

結果は次のとおりです。

[GET] http://localhost:9090/devices 

{"empty":false,"traversableAgain":true} 

は、私は適切なRESTのためにジャクソンObjectMapper com.fasterxml.jacksonをインポートし、リスト上の結果のシリアル化を取得する必要がありますか?

マイRestControllerは次のようになります。

@RestController 
class DeviceController { 

    var devices = Set[Device]() 

    @RequestMapping(value = Array("/devices"), method = Array(RequestMethod.GET)) 
    def accounts() : List[Device] = devices.toList 
} 

答えて

1

念頭にSCALAして設計ではなかった - それゆえにすることはできませんハンドルSCALAリスト正しく。また、Seq [デバイス]も処理できません。

SCALAのJavaConvertesパッケージを使用すると、SCALAリストを簡単にJAVAリストに変換できます。

import scala.collection.JavaConverters._ 

@RestController 
class DeviceController { 

    var devices = Set[Device]() 

    @RequestMapping(value = Array("/devices"), method = Array(RequestMethod.GET)) 
    def accounts() : java.util.List[Device] = { 
    devices.toList.asJava 
    } 
} 

と結果は以下のようになります。java.util.List[Device]

[GET] http://localhost:9090/devices 
[{"name":"first device"},{"name":"second device"}] 

がに、結果の種類を変更することを忘れないでください

関連する問題