Десериализация отдельной пары ключ-значение из строки Json - PullRequest
0 голосов
/ 25 мая 2018

У меня есть класс

Entity implements org.joda.beans.Bean {
    String name;
    double weight;
    ....
}

У меня есть конечная точка, подобная этой:

@RequestMapping(value = "CREATE", method = POST)
public void createEntity(@RequestBody Entity entity) {
    logic.createEntity(entity);
}

Frontend отправляет строку Json этой конечной точке:

{"name": "Bob", "weight":"99.7"}

Теперь я хочу иметь другую конечную точку для обновления сущности.Он принимает строки json, в которых установлена ​​только часть атрибутов:

{"weight":"99.8"}

Его подпись может быть такой:

@RequestMapping(value = "UPDATE", method = POST)
public void updateCompany(@RequestBody Map<String, String> update1) {
    Map<String, Object> update2 = deserialize(Entity.class,update1);
    logic.updateEntity(update2);
}

Вопрос в том, как реализовать метод deserializeкоторая берет пару строк ["weight", "99.8"] и преобразует ее в пару String-Object: ["weight", Double.valueOf ("99.8")], потому что она знает, что тип веса двойной какобъявлен в классе Entity.Такое преобразование было сделано уже при подготовке аргументов для метода createEntity(), теперь я хочу извлечь его как отдельный вызов метода.

1 Ответ

0 голосов
/ 25 мая 2018
  1. Десериализация до Map<String,String>
  2. Итерация по каждой записи
  3. Crete String-> Двойная пара
  4. Положить в Map<String,Double>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...