2017-12-24 2 views
0

Wie kann ich eine SCALA Liste oder Sequenz in Sprint @RestController zurückgeben. Der Rückgabewert der Liste ist , der nicht korrekt serialisiert wird..Spring SCALA Rückkehrliste in RestController

Das Ergebnis ist:

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

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

Muss ich Jackson ObjectMapper com.fasterxml.jackson für die richtige REST importieren Ergebnis Serialisierung auf einer Liste erhalten?

Meine RestController wie folgt aussieht:

@RestController 
class DeviceController { 

    var devices = Set[Device]() 

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

Antwort

1

Frühling NICHT entworfen mit SCALA im Auge war - daher ist es kann nicht SCALA Griff Listen richtig. Es kann auch Seq [Device] nicht behandeln.

Verwenden Sie einfach SCALAs JavaConvertes Paket, um SCALA-Liste in JAVA-Liste zu konvertieren.

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 
    } 
} 

und das Ergebnis wird sein:

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

Denken Sie daran, das Ergebnis Typ zu ändern: java.util.List[Device]

Verwandte Themen