Джерси 2 с проблемой сериализации Джексона - PullRequest
0 голосов
/ 04 июля 2018

Инструменты:

Weblogic 12c

Джерси 2.21.1

Джексон 2

public class Profile implements Serializable
{

    private List<Status> orderStatus;

    public void setOrderStatus(List<Status> orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public void getOrderStatus()
    {
        return orderStatus;
    }

У меня есть простой класс POJO, как указано выше. Я сталкиваюсь с проблемой ниже при использовании Jersey 2 with Jackson.

1) При сериализации класса профиля JSON создается как: {"OrderStatus":[{}]}

2) Таким образом, сгенерированный ключ OrderStatus, а не orderStatus

3) Когда этот JSON десериализован, он выдает ошибку -

Caused by: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "OrderStatus" since it cannot 
find field with OrderStatus but has field as orderStatus

I have tried adding : 

@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY,getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)

надеясь, что в сериализации будут использоваться только поля в качестве ключа (и не будет использоваться свойство), а JSON будет сгенерирован как {"orderStatus":[{}]} .

Но это не работает, и выдается та же ошибка. Есть ли способ, которым мы можем сериализовать POJO с ключом как поля, а не свойства.

Кто-нибудь может помочь, пожалуйста?

1 Ответ

0 голосов
/ 04 июля 2018

Если вы хотите убедиться, что orderStatus является именем, используемым JsonProperty :

 @JsonProperty("orderStatus")
 public void getOrderStatus()

@ JsonProperty (также указывает, что свойство должно быть включено) используется для указания имени внешнего свойства

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