2015-10-14 2 views
1

Когда я пытаюсь преобразовать объект JsValue JSON к объекту, я получаю следующую ошибкуПреобразование JsValue к модели в Scala PLAY2

play.api.libs.json.JsResultException: JsResultException(errors:List((/_id/$oid,List(ValidationError(List(error.path.missing),WrappedArray()))))) (JsReadable.scala:20) 

JSON Я передаю:

val environmentBody = Json.parse("""{ 
         "name" : "Demo Value", 
         "schedulerUrl" : "https://ops-dev.videri.com/v1/scheduler/players/%s/schedules", 
         "playersUrl" : "https://ops-dev.videri.com/v1/crm/players", 
         "token" : "68a1fab4c911206165f3e426b50468eaa66193b56eee66ec508bf9304e6c8b92" 
        }""") 

и преобразование:

val envObject = environmentBody.as[Environment]

модель окружающей среды выглядит следующим образом:

case class Environment(id:Option[String] = None, 
         name: String, 
         schedulerUrl: String, 
         playersUrl: String, 
         token: String) extends Model{ 
    def getId() = id 
} 

trait Model { 
    def getId():Option[String] 
} 

Я не уверен, почему это не работает. Насколько я могу судить, это не должно вызывать ошибок проверки.

+1

Я пытался в моем проекте (использование играть 2.4), и она работает просто отлично. – mfirry

+0

@mfirry любая идея, что может быть тогда ошибкой? – Arel

ответ

2

Ваш код работал на меня. Единственное, что я сделал это поставить эту строку:

implicit val reads = Json.reads[Environment] 
+0

любая идея, что может быть тогда ошибкой? – Arel

+0

Не знаю, на самом деле. Идентификатор '/ _id/$ oid', упоминаемый как отсутствующий в исключении, выглядит странным для меня. Может быть, проблема вызвана вашим форматированием/читателем? Как вы это определяете? – Nyavro

+0

Я не делаю ничего особенного: 'implicit val environmentReads = Json.reads [Environment]' и 'implicit val environmentWrites = Json.writes [Environment]' – Arel

Смежные вопросы