使用 jsonschema2pojo 生成的 Class 立即在代码中创建对象
Using the jsonschema2pojo's generated Class instantly to create objects in the code
我想自动生成 classes 形式的各种接收 API json 回复。然后,使用这些 class 已经生成的代码在代码中生成对象。
我正在使用 jsonschema2pojo 库。使用我尝试的示例代码,库生成 classes 作为文件。
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());
我需要将生成的 class 都 保存为代码中的 Class (类似于:ClassType ClassName = codeModel.build();
)和文件(已经生成)以便将来进一步访问。我该怎么做?
然后,通过 Jackson
将 JSON 输出映射到生成的 class 来创建对象,并将这些对象保存在集合中。
谢谢
我们在 jsonschema2pojo 的集成测试中执行此操作,因此请查看这些测试。您需要编译 class,为此您只需要使用可以以编程方式调用的任何编译器 API。
获得 class 文件后,您可以使用对象映射器创建它的实例。
我想自动生成 classes 形式的各种接收 API json 回复。然后,使用这些 class 已经生成的代码在代码中生成对象。
我正在使用 jsonschema2pojo 库。使用我尝试的示例代码,库生成 classes 作为文件。
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());
我需要将生成的 class 都 保存为代码中的 Class (类似于:ClassType ClassName = codeModel.build();
)和文件(已经生成)以便将来进一步访问。我该怎么做?
然后,通过 Jackson
将 JSON 输出映射到生成的 class 来创建对象,并将这些对象保存在集合中。
谢谢
我们在 jsonschema2pojo 的集成测试中执行此操作,因此请查看这些测试。您需要编译 class,为此您只需要使用可以以编程方式调用的任何编译器 API。
获得 class 文件后,您可以使用对象映射器创建它的实例。