将 Java 类结构转换为 yml 文件

Nan*_*h A 5 java json yaml

我有一个复杂的模型类,Java其中具有不同类的属性。我想以 yml 格式获取类的模式,以提高可读性。我能够将类的结构转换为 JSON 文件,但我觉得 yml 不那么混乱且易于准备。

示例 来自

public class Phone {
    public String name;
    public String number;
}
Run Code Online (Sandbox Code Playgroud)

Phone:
    fields:
      name:
        type: String
      number:
        type: String
Run Code Online (Sandbox Code Playgroud)

Man*_*dis 4

Jackson 库提供了从 Java 类生成 JSONSchema 的能力。您应该能够将其序列化为 YAML,尽管我尚未实际测试这部分。它可能是这样的:

ObjectMapper m = new ObjectMapper();
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
m.acceptJsonFormatVisitor(m.constructType(Phone.class), visitor);
JsonSchema jsonSchema = visitor.finalSchema();

ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
mapper.writeValue(yamlFile, jsonSchema);
Run Code Online (Sandbox Code Playgroud)

如果您使用枚举,您可能需要此配置

mapper.configure(SerializationConfig.Feature.WRITE_ENUMS_USING_TO_STRING, true);
Run Code Online (Sandbox Code Playgroud)

更多详细信息请参见Yaml 模块JSON 模式模块的 github 页面