Использование сгенерированного класса jsonschema2pojo мгновенно для создания объектов в коде - PullRequest
0 голосов
/ 15 мая 2019

Я хочу автоматически генерировать классы из различных ответов API, получаемых через json.Затем создание объектов внутри кода с использованием этих классов уже выполнено.

Я использую библиотеку jsonschema2pojo .С примером кода, который я попробовал, библиотека генерирует классы в виде файлов.

JCodeModel codeModel = new JCodeModel();

    GenerationConfig config = new DefaultGenerationConfig() {

        @Override
        public SourceType getSourceType() {
            return SourceType.JSON;
        }
    };

    SchemaMapper mapper = new SchemaMapper(
            new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());

    mapper.generate(codeModel, apiNodeName, "com.example", apiResultAsString);
    codeModel.build(Files.createTempDirectory("tessst").toFile());

Мне нужно сохранить сгенерированный класс как как класс внутри кода (что-то вроде: ClassType ClassName = codeModel.build();) и файл (который уже создается) для дальнейшего доступа в будущем.Как я могу это сделать?

Затем создайте объекты, сопоставив вывод JSON сгенерированным классом с помощью Jackson и сохраните эти объекты в коллекции.

Спасибо

1 Ответ

1 голос
/ 18 мая 2019

Мы делаем это в интеграционных тестах в jsonschema2pojo, поэтому взгляните на эти тесты. Вам нужно скомпилировать класс, и для этого вам просто нужно использовать любой API-интерфейс компилятора, который может быть вызван программно.

Когда у вас есть файл класса, вы можете использовать объектный картограф для создания его экземпляров.

...