преобразовать request.getParameterMap () в bean-компонент

1

Я хочу преобразовать 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;
}
  • 1
    просто из любопытства, почему ты хочешь сделать такую вещь?
  • 0
    Какой именно здесь сценарий использования и что вам нужно? Есть много способов сделать это, но это зависит от того, как и какую операцию вы хотите выполнить после этого.
Теги:

3 ответа

1
Лучший ответ

apache.commons.beanutils будет отображать значения карты в bean, если класс уже существует.

BeanUtils.populate (ученик, карта);

Скажем, студент уже существует.

  • 0
    Спасибо за вышеизложенное. Единственная проблема, с которой я столкнулся, заключается в том, что я не знаю, каким будет объект, поэтому student не будет работать, поскольку я не конвертирую только один конкретный объект.
  • 0
    Я использовал BeanUtils.populate(object, request.getParameterMap()); вместо этого, который работал.
Показать ещё 1 комментарий
0

Если вы знаете структуру полученного POJO, вы можете использовать jackson (http://jackson.codehaus.org/) или другую json/xml для библиотеки сопоставления POJO. Вы знаете, как выглядит результирующий объект?

То, что говорит Раджеш, также является решением, которое легче. Но та же проблема - вы должны знать структуру результата.

  • 0
    Спасибо за вышеизложенное. Я не знаю, как выглядит получившийся объект, нет. Я хочу создать объект динамически. Возможно, Reflection можно было бы использовать?
0

Вы можете сделать это со списком объектов

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;
}
  • 0
    Спасибо за вышеизложенное. Единственная проблема, с которой я столкнулся, заключается в том, что я не знаю, каким будет объект, поэтому ObjectSample не будет работать, поскольку я не конвертирую только один конкретный объект.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню