Reputation: 93
Am trying to read yaml
file contents using java code and am not able to construct java objects using java model class
Please find my person.yaml
file
name: Joe
phone: 111-111-11111
address: Park Dr, Charlie Hill
Please find my model class
public class Person {
private String name;
private String phone;
private String address;
}
Please find my service method :
public class PersonsService {
public static void main(String args[]) throws IOException {
Yaml yaml = new Yaml();
try (InputStream in = PersonsService.class
.getResourceAsStream("person.yaml")) {
Person person = yaml.loadAs(in, Person.class);
System.out.println(person);
}
}
}
Am getting the below error :
Exception in thread "main" Can't construct a java object for tag:yaml.org,2002:com.javaproject.snakeyaml.model.Person; exception=Cannot create property=name for JavaBean=com.javaproject.snakeyaml.model.Person@77a567e1; No JavaBean properties found in com.javaproject.snakeyaml.model.Person
in 'reader', line 1, column 1: name: Joe ^
Upvotes: 1
Views: 7378
Reputation: 16910
The error explains everything :
Can't construct a java object for tag:yaml.org,2002:com.javaproject.snakeyaml.model.PersoN ... No JavaBean properties found in com.javaproject.snakeyaml.model.Person
So you have to provide getters and setters for your Person
class so that the library will use them to set values for your Person
class object. More about JavaBeans properties can be found here.
Upvotes: 2