Джексон JSON для pojo из массива объектов без имени свойства - PullRequest
0 голосов
/ 06 февраля 2019

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

{"parent":
          [
            {"property":[2,5],"type":2},
            {"property":[1,2],"type":1},
            {"property":[4,0],"type":0}
          ],
 "prop2":"something"
}

В настоящее время Java выглядит как

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Parent{
       <WHAT TO PUT HERE??>
       List<PropertyTypeObj> propertyTypes;
    }

Это часть чего-то большего, например:

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Container{

        @JsonProperty("parent")
        List<Parent> parent;
        @JsonProperty("prop2")
        String prop2
    }

Решением было обойти создание родительского элемента и вместо этого использовать PropertyTypeObject

@JsonInclude(JsonInclude.Include.NON_NULL)
        public class Container{

            @JsonProperty("parent")
            List<PropertyTypeObject> properties;
            @JsonProperty("prop2")
            String prop2
        }

А затем укажите PropertyTypeObject как имеющий @JsonRootName("parent")

См. Утвержденный ответ для ясности.

1 Ответ

0 голосов
/ 06 февраля 2019

Возможная структура класса выглядит следующим образом:

public class External {
   private List<External.Internal> parent;
   private String prop2; 

   @JsonRootName("parent")
   public static class Internal {
     private List<Integer> property;
     private Integer type;
   }
}

, где внешний класс имеет:

  • parent свойство, которое является списком (массивом)в json) Внутренних элементов
  • prop2 свойство типа String

и внутренний класс, который имеет для каждого элемента:

  • a свойство свойство типа List (массив в json) целых чисел
  • a type свойство типа integer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...