Jackson не считывает boolean

96
29 мая 2021, 13:50

У меня есть медот который принимает и парсит JSON с помощью Jackson

 @POST
    @Path("/add")
    @Produces({MediaType.APPLICATION_JSON})
    public void addTable(TableSyncDTO tableSyncDTO) {
          ...
}

TableSyncDTO

public class TableSyncDTO {
    private String nodeGroupId;
    private String srcTable;
    private String srcDatabase;
    private boolean syncUpdate;
    private boolean syncInsert;
    private boolean syncDelete;
    private boolean tableReloadRequest;
    private boolean createTable;
   ... //get and set, equals and hashcode
    }

JSON который приходит

{
  "nodeGroupId":"UZ_Megafon",
  "srcTable":"CDR_calls323",
  "srcDatabase":"FBII",
  "sncUpdate":true,
  "sncDelete":true,
  "sncInsert":true,
  "tbleReloadRequest":true,
  "ceateTable":true
}

но объект не создается, вот ошибка:

Unrecognized field "isSyncUpdate" (class com.unifun.symmetric.view.model.TableSyncDTO), not marked as ignorable
Answer 1

По-моему Jackson отбрасывает is при сериализации и наоборот, когда пытается десериализовать json в объект ищет метод setFieldName(...). Для вашего json он ищет setIsSyncUpdate(...) и isIsSyncUpdate(). Таких нет и он вам справедливо об этом говорит говорит. Вы можете явно указать с помощью аннотаций @JsonGetter или @JsonSetter имена полей в json. В этом случае он будет смотреть на string указанную в аннотации, а не на имя метода. Или можете создать методы setIsSyncUpdate(...) и isIsSyncUpdate(), если заведется - то проблема в этом и нужно либо менять имена, либо добавить аннотации.

READ ALSO
Падает приложение java.lang.NoSuchMethodError

Падает приложение java.lang.NoSuchMethodError

Собираю приложение через Usb отладку все окНо когда собираю Apk приложение падает java

88
Параметр типа boolean для запуска java программы

Параметр типа boolean для запуска java программы

Допустим есть программаПри определенном параметре в строке запуска её поведение изменится

115
Как прочитать файл на компьютере

Как прочитать файл на компьютере

У меня есть Skullstxt документ, мне нужно читать его на компьютере а не на сайте

110