У меня есть такие простые данные YAML, которые я пытаюсь преобразовать в объект POJO с именем Person
, используя SnakeYaml.
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