1
Я не могу разобрать json, я получаю как карту. У кого-нибудь есть идеи? Пожалуйста, спросите, требуется ли вам дополнительная информация. Спасибо :)Невозможно разобрать Json как карту - Scala/Play
Пытаясь разобрать следующий ответ с помощью:
Json.parse(response.body).as[Map[String, Either[List[ErrorMsg], Seq[OepPoint]]]]
Ответ:
{
"Payout": {
"errors":[
{
"field": "Last point: OepPoint(0.033,72.14). Current: OepPoint(0.033,65.71)",
"message":"OEP must be unique"
}
],
"curve":[]
}
}
Сообщение об ошибке бросили это:
No Json deserializer found for type Map[String,Either[List[ErrorMsg],Seq[OepPoint]]]. Try to implement an implicit Reads or Format for this type.
[error] val errorExpected = Json.parse(response.body).as[Map[String, Either[List[ErrorMsg], Seq[OepPoint]]]]
[error] ^
[error] one error found
Структура OepPoint:
case class OepPoint(oep: Double, loss: Double)
object OepPoint {
implicit val oepPointReads = Json.format[OepPoint]
}
Структура ErrorMsg:
case class ErrorMsg(field: String, message: String)
object ErrorMsg {
implicit val errorMsgReads = Json.format[ErrorMsg]
}
Можете ли вы форматировать вещи, чтобы быть более читаемыми. –
Play-json предоставляет 'Read' для обычных типов, таких как 'String',' Int', 'List [A]' и т. Д. В случае таких общих типов, как 'List [A]', 'implicit Read' для' A 'потребуется. Вам нужно будет предоставить 'implicit'' Read 'для ваших собственных типов. Которые - вероятно, «OepPoint» и «ErrorMsg». –
Я предполагаю, что способ, которым я определил мой OepPoint atm, неверен? 'случай класса OepPoint (ОЭП: Двойная, потеря: Double) объекта OepPoint { неявных значи oepPointReads = Json.format [OepPoint] }' – user4659009