0

我有许多使用 play-json 库定义json Read//的案例类。这种定义的典型示例是使用宏完成的WriteFormat

case class Payload(
                    file: FilePayLoad,
                    comment: String
                  )

object Payload {
  implicit val format: Format[Payload] = Json.format[Payload]
}

使用库 api 编写更具体的格式或其他任何内容都没有问题。

是否有可能对OReads隐式定义进行反射或类型分析?我现在对类型级编程知之甚少,关于隐含的内容已经足够多,可以检索宏扩展生成的隐含,但我正在开发一个可自我发现的 REST api,我需要为给定的有效负载案例类打印出预期的 JSON 格式

有什么方法可以反转 play-json 读取定义以打印类似这样的内容

 "format": {
    "/payload": {
        "/file": {
            "type": "FilePayLoad"
            "format": {
                "/name": {
                    "type": "String",
                    "optional": false
                },
                "/mimeType": {
                    "type": "String",
                    "optional": false
                },
                "/filesize": {
                    "type": "Double",
                    "optional": false
                },
            },
        },
        "/comment": {
            "type": String,
            "optional": false
        }
    }
 }
4

0 回答 0