我有一个像这样的简单 YAML 数据,我正在尝试将其转换为Person
使用 SnakeYaml 调用的 POJO 对象。
age: 123
name: Jackson
phone:
number: 123456
这是执行此操作的 Groovy 代码。
@ToString
class Person{
def name
def age
Tel phone
}
@ToString
class Tel{
def number
}
Constructor c = new Constructor(Person.class);
TypeDescription t = new TypeDescription(Person.class);
t.putListPropertyType("phone", Tel.class);
c.addTypeDescription(t);
def person = new Yaml(c).load(input)
println person
Person
这将按预期在其中创建对象Tel
。
但是,当我尝试Person
按如下方式传递 yaml 中的列表时,出现错误。
- age: 123
name: Jackson
phone:
number: 123456
- age: 234
name: Jackson
phone:
number: 123456
这是我得到的错误
Caused by: org.yaml.snakeyaml.error.YAMLException: No suitable constructor with 2 arguments found for class soapunit.Person
at org.yaml.snakeyaml.constructor.Constructor$ConstructSequence.construct(Constructor.java:587)
at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:340)
... 8 more