Scala - Playframework - JsResultException - PullRequest
       37

Scala - Playframework - JsResultException

0 голосов
/ 23 января 2020

Я пытаюсь передать json значения в мой метод с помощью POST, но я получаю сообщение об ошибке ниже:

Handler.scala:320) [play_2.11-2.3.10.jar:2.3.10]
        at scala.Option.map(Option.scala:146) [scala-library-2.11.11.jar:na]
Caused by: play.api.libs.json.JsResultException: JsResultException(errors:List((,List(ValidationError(error.expected.jsarray,WrappedArray())))))
        at play.api.libs.json.JsValue$$anonfun$2.apply(JsValue.scala:67) ~[play-json_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.json.JsValue$$anonfun$2.apply(JsValue.scala:67) ~[play-json_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.json.JsResult$class.fold(JsResult.scala:77) ~[play-json_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.json.JsError.fold(JsResult.scala:13) ~[play-json_2.11-2.3.10.jar:2.3.10]
        at play.api.libs.json.JsValue$class.as(JsValue.scala:65) ~[play-json_2.11-2.3.10.jar:2.3.10]

, и это происходит в объявлении этой переменной

  val friends = (json \ "friends ").as[JsArray].value 

Я могу успешно создать сообщение, используя Почтальон, без каких-либо проблем, когда я форматирую json следующим образом

{"success":true,"friends":[ 
    { 
       "id":1,
       "name":"john",
       "age":"19",
    }
]
}

, но когда я переформатирую свой json в

[ 
    { 
       "id":1,
       "name":"johny",
    }

]

Я получаю

[JsResultException: JsResultException(errors:List((,List(ValidationError(error.expected.jsarray,WrappedArray())))))]

1 Ответ

2 голосов
/ 23 января 2020
  1. .as небезопасно.
  2. В [ { "id":1, "name":"johny", }] нет поля friends (являющегося JsArray или каким-либо другим JsValue).
...