我正在使用 http4s 构建应用程序的后端。在应用程序中,我收到来自外部 api 的 json 响应(不是我正在处理的那个)。api 响应是下面这种模式。
json响应:
`{
"datatable" : {
"data" : [["AAPl", "MRT", "2020-03-20", 123, 123, 12.4, 233, 3234],
["AAPl", "MRT", "2020-03-20", 123, 123, 12.4, 233, 3234]],
"meta": {
"next_date : null
}
}`
我的问题是?有人可以告诉我如何创建一个实体解码器和实体编码器来解码模式。我似乎可以让它工作。
目前我有:
object Stocks {
case class tickerInfo(ticker: String, dim:String, date: String, a: Int, b: Int, c: Float, d: Int, e: Int)
case class data(data: Seq[tickerInfo])
case class meta(next_date : Option[String])
case class table(data: data, meta:meta)
case class stockInfo(datatable:table)
object stockInfo {
implicit def stockInfoEntityDecoder[F[_]:Sync]: EntityDecoder [F, stockInfo] = jsonOf
implicit def stockInfoEntityEncoder[F[_] : Applicative]: EntityEncoder[F, stockInfo] = jsonEncoderOf
}
val decodedJson = C.expect[stockInfo](GET(Uri.uri("www.externalApi.com")
}
但这不起作用。请有人能告诉我哪里出错了。
我收到运行时错误*不是编译错误)。它是一个 http4s 错误,上面写着 - InvalidMessageBodyFailure。
谢谢