Как выполнить определенную операцию только для определенных полей в объекте Java или в полезной нагрузке JSON - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть приложение для микросервисов с пружинной загрузкой, и в нем я хочу выполнить определенную операцию (скажем, некоторые манипуляции со строками) над определенными полями объекта Java (или объекта JSON).

Например:

class Employee {

private String id;
private String name;
private String someOtherId;

}

Если мне нужно выполнить определенную операцию только для полей id и someOtherId, как это можно сделать? Могут ли быть созданы пользовательские аннотации для этого?

Что-то вроде:

stringAppend (employee) должен выполнять эту операцию только для определенных полей. Я не хочу проверять итерацию внутри функции, скорее, я бы сделал это с помощью конфигурации.

Объект будет полезной нагрузкой из HTTPRequest и должен выполнять эту манипуляцию только для определенных полей.

1 Ответ

1 голос
/ 02 апреля 2019

Для управления определенными полями полученного объекта в полезной нагрузке HTTP-запроса вы можете использовать библиотеку Джексона в Java. Jackson - это очень популярная и эффективная библиотека на основе Java для сериализации или сопоставления Java-объектов с JSON и наоборот.

В этом случае из тела http-запроса объект Employee будет сформирован в сериализованном виде. Чтобы десериализовать его в фактический объект Employee, вы можете использовать ObjectMapper из библиотеки Джексона следующим образом:

Предположим, payloadJson - это строка, содержащая полезную нагрузку запроса в формате JSON.

ObjectMapper objectMapper = new ObjectMapper();

Employee employee = objectMapper.readValue(payloadJson, Employee.class);

После десериализации вы можете выполнять манипуляции с полями объекта Employee методом Getters и Setters.

...