Я использую Play Framework, чтобы открыть API REST, который возвращает некоторые объекты JSON. Чтобы упростить использование API, я хотел бы вернуть «вычисленное» поле в ответе.Как сериализовать переходные поля в модели через FlexJson?
К сожалению, в моих тестах, в то время как FlexJson не игнорировать переходные модели поля полностью, но всегда ставит их в «нулевой».
Подробнее:
В модели класса, я определяю:
@Transient
public String currencyName;
только конструктор класса установить значение "доллар" (для отладки):
this.currencyName = "dollar";
При сериализации класса с использованием FlexJson, когда поле «currencyName» d не указан в включении/исключение - результат всегда выглядит следующим образом:
"currencyName":null
Любой идея, что ошибался, и как получить значение поля сериализована в JSON?
Заранее спасибо.
Спасибо. Я использую сериализацию, чтобы генерировать «чистый» JSON, а не передавать «состояние» объекта между приложениями. Моя мысль заключалась в том, что вместо того, чтобы настраивать поля «this.currency» для «распечатки» в JSON, используйте рассчитанные поля, чтобы напрямую указать формат JSON. Любая мысль? – Max
Если вы не заинтересованы в сохранении этого поля или состоянии, почему бы вам не удалить это поле вообще. У вас может быть метод, который вычисляет и возвращает это значение, т. Е. String getCurrencyName() – emt14
Альтернативно используйте метод exclude из сериализатора: новый JSONSerializer(). Exclude ("currencyName"). Сериализовать («Валюта», валюта); – emt14