2013-09-16 4 views
3

Я хочу загрузить список POJO из моего файла yaml. Возможно ли это сделать, используя змеиный ямль?Snakeyaml to convert yaml to pojo

мой файл YAML выглядит примерно так -

- pty1:val1 
    pty2:val2 

- pty1:val1 
    pty2:val2 

И мой POJO -

class pojo { 
    String pty1; 
    String pty2; 
} 

Snakeyaml документация действительно говорит использовать loadAs(), но который загружает один элемент. Можно ли загрузить список таких элементов с автоматическим привязкой к типу?

Спасибо!

+0

Пробовали ли вы использовать 'yaml.load (yamlString)'? Как я могу видеть здесь https://code.google.com/p/snakeyaml/wiki/Documentation#Loading_YAML, он должен вам помочь. – pepuch

+0

Он не работает ... Он загружает его как список связанных хэш-карт. Возможно, следует добавить теги для snakeyaml, чтобы узнать, что это java bean? – amrk7

+0

Как вы писали, вы должны загрузить pojos, чтобы перечислить и работать над ним. Кстати, вы также можете использовать метод loadAll. – pepuch

ответ

2

Я начал использовать Jackson's Yaml format plugin для сериализации и десериализации ямля. Очень дружелюбны.

+0

Я мог бы найти ответ здесь, но вместо этого нашел ссылку. Думаю, я по-прежнему ценю частичный ответ. –

-1

Один из способов достижения этого - создать класс, содержащий список POJO.

class POJOList { 
    List<pojo> pojoList; 
    public POJOList(List<pojo> pojoList) { 
     this.pojoList = pojoList; 
    } 
} 

Вы можете прочитать файл YAML в папке ресурсов, как:

InputStream in = ClassLoader.getResourceAsStream("pojolist.yaml"); 
POJOList pojoList = yaml.loadAs(in, POJOList.class);