Как описать ожидаемый формат play-json Читает программно

У меня есть много тематических классов, которые определяют JSON Read/Write/Format используя библиотеку play-json. Типичный пример такого определения сделан с использованием макроса

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

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

Нет проблем для написания более конкретных форматов или чего-либо еще, используя библиотеку API.

Есть ли возможность выполнить рефлексию или анализ типа на OReads неявное определение? Сейчас я немного разбираюсь в программировании на уровне типов и достаточно о последствиях, чтобы получить последствия, сгенерированные раскрытием макроса, но я работаю над самораспознаваемым API REST и мне нужно будет распечатать ожидаемый формат 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
        }
    }
 }

0 ответов

Другие вопросы по тегам