【发布时间】:2018-07-21 09:57:32
【问题描述】:
我有一个如下所示的 yaml 文档 -
---
Village:
Persons:
-
name: Tom
age: 65
children:
- Bob
- Marla
-
name: Dick
age: 58
它可以很容易地解析。现在为了简洁起见,我想像这样制作相同的文档-
---
Village:
Persons:
-
Tom:
age: 65
children:
- Bob
- Marla
-
Dick:
age: 58
请注意,本质上是相同的数据。如何将其解析为上述文档中的Person 对象?我正在将 Java 与杰克逊解析器一起使用。
显然我有 Village 和 Person 类以及所有的 getter 和 setter。我认为带有默认构造函数和 String 参数的 Person 类可以解决问题,但事实并非如此。
【问题讨论】:
-
您的第二个文档尝试在人员对象列表中设置 Tom 对象和 Dick 对象。这就是为什么它不起作用。
-
有什么办法可以避免将其解析为 Tom 或 Dick 对象,而是将其设为名称为 Tom 或 Dick 的 Person 对象。例如。使用默认构造函数
Person(String name)? 调用 -
他们更好的问题是这是否是在 YAML 中获得简洁性的正确方法。您应该考虑使用 YAML 标记以及如何在文档中适当地使用它们,而不是在程序中滥用对键的解释。