Я получаю java.lang.ClassCastException: scala.Some cannot be cast to models.Data
ошибку при попытке получить значение из JsSuccess. В чем ошибка в следующем коде?
val dataOption = request.body.validateOpt[Data]
dataOption match {
case dataSuccess:JsSuccess[Data] => {
println("validated request body:" + dataSuccess) //I see this print
val data:Data = dataSuccess.value //PROGRAM THROWS EXCEPTION HERE
println("received data:" + data +", "+data.mydata)
я получаю следующие данные
{"data":{"field1":"d","field2":"d","field3":["d"],"field4":["d"],"field5":[1],"field6":"d","field7":"d"}}
JsValue.validateOpt
успешно приводит данные
validated request body:JsSuccess(Some(Data(MyData(None,d,List(d),List(1),d,Set(d),d,d))),/my-data)
Затем, когда я пытаюсь получить данные, программа выдает исключение java.lang.ClassCastException: scala.Some cannot be cast to models.Data
val data:Data = dataSuccess.value //PROGRAM THROWS EXCEPTION HERE
println("received data:" + data +", "+data.mydata)
Класс модели
case class Data(myData:MyData)
case class MyData (field1: Option[UUID],
field2: String,
field3: List[String],
field4: Seq[Byte],
field5: String,
field6: Set[String],
field7: String,
field8:String)