Как заставить Джексона сериализовать общее pojo с разными именами для общих полей в зависимости от того, какой проект импортирует pojo - PullRequest
0 голосов
/ 25 марта 2020

У нас есть общий объект, который мы хотим использовать в нескольких проектах. Скажем:

public class Pojo {
  private Object id;
  private Object data;
}

В зависимости от того, какой проект импортирует этот общий класс, мы хотим, чтобы он сериализовался в JSON по-разному. Таким образом, для проекта "контракты":

{ "contractid": 1234, "contract": <data> }

А для проектов "предложения":

{ "offerid": 1334, "offer": <data> }

Есть 5-10 общих поно, подобных этому, и многие из них состоят из другие распространенные pojos. И у нас будет большое количество проектов, которые нужно будет создавать быстрее. Поэтому в идеале мы не хотели бы создавать конкретные c pojos с правильными именами для каждого проекта.

Я не вижу простого способа переопределить именование по умолчанию в Джексоне без использования константы (для @JsonProperty / @JsonRootName аннотации. Я хотел бы просто прочитать эти имена из файла свойств, если это возможно.

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

Спасибо, --Shannon

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...