【问题标题】:Circe Decoding "AnyContentAsJson" type in Scala PlayCirce 在 Scala Play 中解码“AnyContentAsJson”类型
【发布时间】:2021-09-21 19:53:28
【问题描述】:

我正在尝试使用 Circe 和 Scala Play 将传入请求的主体解析为 JSON。传入的请求来自 Postman,因为我在本地运行服务以进行测试。

我使用的解码是:decode[LoginRequest](request.body.toString)

不过,每当我运行它时,Circe 都会抛出一个错误,因为它接收到“意外的 JSON”,这是我期待的 JSON,但包装在这个对象中 AnyContentAsJson

有人知道我该如何解决这个问题吗?谢谢!

【问题讨论】:

  • 您能否提供您正在使用的代码以及您发送的请求正文?

标签: scala playframework circe


【解决方案1】:

我将代码行更改为decode[LoginRequest](request.body.asJson.get.toString)

播放操作(又名我的Action.async)根据 Content-Type 标头解析 JSON 正文。因为我发送的是 JSON 正文,所以它返回 AnyContentAsJson 对象。从那里,您可以使用as 方法进行解析然后解码。

在这里找到的信息:https://www.playframework.com/documentation/2.8.x/ScalaBodyParsers

【讨论】:

    猜你喜欢
    • 2019-03-15
    • 2020-07-06
    • 2019-03-13
    • 2017-11-27
    • 2017-06-23
    • 2017-10-03
    • 2019-09-26
    • 2019-03-15
    • 2023-03-12
    相关资源
    最近更新 更多