Karthikeyan
Karthikeyan

Reputation: 93

Can't construct a java object for tag:yaml.org,2002

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

Answers (1)

Michał Krzywański
Michał Krzywański

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

Related Questions