Генерация тематических классов из схемы и разбора JSON - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть схема json:

{
    "type ": "record ",
    "name ": "JSONSchema",
    "namespace ": "com.jsonschema ",
    "fields ": [{
            "name ": "schema ",
            "type ": "string "
        },
        {
            "name ": "body ",
            "type ": {
                "type ": "record ",
                "name ": "BodyFinal ",
                "fields ": [{
                        "name ": "schema ",
                        "type ": "string "
                    },
                    {
                        "name ": "data ",
                        "type ": {
                            "type ": "array ",
                            "items ": {
                                "type ": "record ",
                                "name ": "DataFinal ",
                                "fields ": [{
                                        "name ": "tna ",
                                        "type ": [
                                            "null ",
                                            "string "
                                        ],
                                        "default ": null
                                    },
                                    {
                                        "name ": "aid ",
                                        "type ": [
                                            "null ",
                                            "string "
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        }
    ]
}

Как я могу автоматически сгенерировать классы дел, используя схему как:

case class JSONSchema(schema: String, body: BodyFinal)
case class BodyFinal(schema: String,data: List[DataFinal])
case class DataFinal(tna: Option[String], aid: Option[String])

И затем написать анализатор для проверки любой json, полученный с использованием классов case. Таким образом, если в будущем я изменю схему и добавлю / удаляю в ней все поля, классы дел могут быть сгенерированы и проверены на соответствие JSON.

...