#scala #play-json
#scala #воспроизведение-json
Вопрос:
Я использую Play framework для преобразования между классом case и Json.
Как я могу извлечь схему Json, соответствующую классу case?
Редактировать: если класс case class Foo(string:Option[String], int:Option[Int])
Схема должна быть (приблизительно):
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://example.com/product.schema.json",
"title": "Foo",
"type": "object",
"properties": {
"string": {
"type": "string"
},
"int": {
"type": "int"
}
},
"required": [ ]
}
Комментарии:
1. Вы не можете. Кодеки JSON — это просто функции, и вы не можете извлечь из функции, как она создана, вы можете только вызвать ее. Вам придется создавать схему параллельно с кодеками, сохраняя их синхронизацию, или использовать некоторую структуру, которая может использоваться для построения как кодеков, так и схемы.
2. Вы имеете в виду извлечение данных из JSON, соответствующих классу case, случайно?
3. @TomerShetah добавил пример
Ответ №1:
Используйте для этого scala-jsonschema и спонсируйте автора этой замечательной библиотеки.
Библиотека также поддерживает spray-json, circe и некоторые другие анализаторы JSON для Scala.