我正在寻找一种解决方案,它可以从给定的.yaml-Files中自动生成POJO类文件,但还没有找到类似的东西。 我无法想象它应该是自己编写这些类的唯一方法。
答案 0 :(得分:2)
问题是YAML描述了对象,而不是类。通常,您无法从给定的YAML文件自动派生POJO结构。举个例子,这个YAML:
one: foo
two: bar
在YAML中,这是一个带有标量键和值的映射。但是,将它映射到Java有多种可能性。这是两个:
HashMap<String, String>
class Root {
String one;
String bar;
}
要知道哪一个是正确的映射,您需要一个类似于XML的模式定义。遗憾的是,YAML目前没有提供定义架构的标准方法。因此,您可以通过编写YAML应反序列化的类层次结构来定义模式。
因此,与您的想法相反,编写POJO并不是一个可以自动化的多余操作,而是将YAML包含在您的应用程序中的重要步骤。
注意:如果您确实希望使用YAML定义某些数据布局,然后从中生成Java源代码,那当然是可能的。但是,您需要在描述中更精确地获得相关帮助。
答案 1 :(得分:2)
正如@Jack的评论中指出的那样,您可以使用在线工具:jsonschema2pojo将yaml文件样本转换为其等效的POJO类。该工具可以将json或yaml数据转换为相应的POJO类,而我过去已经成功使用了它。
也就是说,当您使用yaml文件(而不是yaml模式)时,该工具被迫做出某些“假设”。因此,在开始使用生成的类之前,先仔细查看它们是一个好主意。
您可以在其wiki页面上找到有关如何使用此在线工具的更多信息。
答案 2 :(得分:0)
您可以尝试使用https://editor.swagger.io/
导入yaml文件后,您可以通过带有相应POJO类的菜单来生成Java REST Client项目。