kos*_*cki 2 rest serialization spring json scala
如何在 Sprint @RestController 中返回 SCALA列表或序列。列表返回值未正确序列化。
结果是:
[GET] http://localhost:9090/devices
{"empty":false,"traversableAgain":true}
我是否需要导入 Jackson ObjectMappercom.fasterxml.jackson才能在列表上进行正确的 REST 获取结果序列化?
我的 RestController 看起来像这样:
@RestController
class DeviceController {
  var devices = Set[Device]()
  @RequestMapping(value = Array("/devices"), method = Array(RequestMethod.GET))
  def accounts() : List[Device] =  devices.toList
}
Spring 的设计并未考虑到 SCALA - 因此它无法正确处理 SCALA 列表。它也不能处理 Seq[Device]。
只需使用 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
  }
}
结果将是:
[GET] http://localhost:9090/devices
[{"name":"first device"},{"name":"second device"}]
请记住将结果类型更改为:  java.util.List[Device]
| 归档时间: | 
 | 
| 查看次数: | 748 次 | 
| 最近记录: |