【问题标题】:convert json string to Java source code not working将json字符串转换为Java源代码不起作用
【发布时间】:2019-04-09 00:02:12
【问题描述】:

我有一个动态 JSON 模式,我需要在运行时将其转换为 Java 源代码
我发现这个杰克逊的例子看起来很 common
代码运行良好,没有异常但没有生成任何东西。
当我打破 json 结构(只是为了测试 jackson 是否正常工作)时,我确实得到了 Jackson 异常......

@Test
public void jsonToJava() throws IOException {   
    JCodeModel codeModel = new JCodeModel();
    String schemaContents ="{\"test\":\"test\"}";

    GenerationConfig config = new DefaultGenerationConfig() {
        @Override
        public boolean isGenerateBuilders() { 
            return true;
        }
    };

    SchemaMapper mapper = new SchemaMapper(new RuleFactory(config, new Jackson2Annotator(config), new SchemaStore()), new SchemaGenerator());
    mapper.generate(codeModel, "HelloWorldClass", "com.my.package", schemaContents);
    File directory = new File("C:\\temp\\gen");
    directory.mkdirs();
    codeModel.build(directory);
}

【问题讨论】:

  • 如果你投反对票,请解释

标签: java jackson2


【解决方案1】:

我对该库一无所知,但该示例似乎无法按原样运行。根据答案here,您需要覆盖 DefaultGenerationConfig 中的另一个方法才能使其正常工作。将以下代码添加到您的示例中对我有用:

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

【讨论】:

    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多