Как определить JSON с помощью Lombok в свойствах: @JsonPropertyOrder и @JsonIgnore (JAVA) - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь использовать lombok с JSON, но у меня возникают некоторые ошибки

Json не соблюдает порядок, когда имя переменной отличается от @ JsonProperty.

(это, вероятно, проблема с геттерами)

Еще один момент - я хотел бы скрыть идентификатор объекта Object1 в сгенерированном json

@Data
@Builder(toBuilder = true)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@NoArgsConstructor(access = AccessLevel.PACKAGE)
@JsonPropertyOrder({ "id", "objectid", "value" })
public class Object1 {

@JsonIgnore
private Long id;

@JsonProperty("objectid")
private Long subid;

@JsonProperty("value")
private String value;

}

Результат:

{
  "id" : 123,  <--- I want to hide
  "value" : "...",
  "objectid" : 123
}

"это маленький вымышленный класс"

Спасибо,

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Ваш код работает нормально ... Что вы хотите получить в результате?Your code

0 голосов
/ 31 января 2019

Чтобы решить порядок вывода, попробуйте использовать ObjectMapper следующим образом:

ObjectMapper om = new ObjectMapper();
String jsonString = om.writeValueAsString(myObject1);
System.out.println(jsonString);

Чтобы скрыть идентификатор, вы можете использовать эту аннотацию Джексона:

@JsonIgnoreProperties(value = {"id"})

Если вы все еще хотитечтобы иметь возможность установить идентификатор с помощью установщика, добавьте этот член в аннотацию:

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