Как описать ожидаемый формат 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
}
}
}