Я хочу преобразовать Map<String, String[]>
в Bean
компонент с геттерами и сеттерами. Есть ли библиотека, которая может это сделать уже? Если нет, как это можно сделать?
Моя идея в том, что это будет примерно так:
public Object convert(final Map<String, String[]> map) {
Object object = new Object() {
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry mEntry = (Map.Entry) iterator.next();
Object mEntry.getKey() = mEntry.getValue();
}
};
return object;
}
apache.commons.beanutils будет отображать значения карты в bean, если класс уже существует.
BeanUtils.populate (ученик, карта);
Скажем, студент уже существует.
student
не будет работать, поскольку я не конвертирую только один конкретный объект.
BeanUtils.populate(object, request.getParameterMap());
вместо этого, который работал.
Если вы знаете структуру полученного POJO, вы можете использовать jackson (http://jackson.codehaus.org/) или другую json/xml для библиотеки сопоставления POJO. Вы знаете, как выглядит результирующий объект?
То, что говорит Раджеш, также является решением, которое легче. Но та же проблема - вы должны знать структуру результата.
Вы можете сделать это со списком объектов
public List<ObjectSample> convert(final Map<String, String[]> map) {
List<ObjectSample> list = new ArrayList<>();
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry mEntry = (Map.Entry) iterator.next();
ObjectSample object = new ObjectSample();
object.setKey(mEntry.getKey());
object.setValue(mEntry.getValue());
list.add(object);
}
return list;
}
ObjectSample
не будет работать, поскольку я не конвертирую только один конкретный объект.