Джексон JsonRootName не добавляет значение root - PullRequest
0 голосов
/ 12 июля 2020

Я сериализую объект, которому я бы хотел присвоить значение root.

Это мой класс.

@JsonRootName(value = "user")
public class User {
    @JsonProperty
    private String name;
    @JsonProperty
    private int id;

    public User(int id, String name) {
        this.name = name;
        this.id = id;
    }
}

Вот как я его сериализую :

 public static void main(String[] args) throws JsonProcessingException {
        User user = new User(1, "foobar");
        ObjectMapper mapper = new ObjectMapper();
        String serilizedValue = mapper.writeValueAsString(user);
        System.out.println(serilizedValue);
    }

Но сериализованное значение:

{"name":"foobar","id":1}

Пока я прыгал, чтобы получить значение root json, как указано в определении класса.

Не могли бы вы помочь с этим?

1 Ответ

2 голосов
/ 12 июля 2020
@JsonRootName(value = "user")
public static class User {
        @JsonProperty
        private String name;
        @JsonProperty
        private int id;

        public User(int id, String name) {
            this.name = name;
            this.id = id;
        }
}

public static void main(String[] args) throws InterruptedException, ParseException, JsonProcessingException {
      User user = new User(1, "foobar");
      ObjectMapper mapper = new ObjectMapper();
      mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
      String serilizedValue = mapper.writeValueAsString(user);
      System.out.println(serilizedValue);
}

Вывод:

{"user":{"name":"foobar","id":1}}

Вам необходимо включить WRAP_ROOT_VALUE в сопоставлении объектов

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