Список <Long>не сериализуется в строку в Java - PullRequest
0 голосов
/ 10 февраля 2020

У нас есть класс Агент с assignedUsers как Список <<em> Long >

, когда мы пытаемся преобразовать объект как JSON документ, мы используем ObjectMapper writeValueAsString метод, который не сериализует идентификаторы в String, вместо этого ключ assignUsers не пропущен в строке JSON.

import java.io.IOException;
import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;

public class Agent {
private List<Long> assignedUserIds;
        private String name;

        private static final String json = "{\"name\":\"New Agency\", \"assignedUserIds\":[23,24]}";

        public String getName() {
                return name;
        }

        public void setName(final String name) {
                this.name = name;
        }

        public List<Long> gocuetAssignedUserIds() {
        return assignedUserIds;
        }

        public void setAssignedUserIds(final List<Long> assignedUserIds) {
                this.assignedUserIds = assignedUserIds;
        }

        public static void main(String[] args) {
                Agent agencyInfo = null;
                try {
                        agencyInfo = new ObjectMapper().readValue(json, Agent.class);
                        System.out.println("Built Agent :: " + new ObjectMapper().writeValueAsString(agencyInfo)); // Outputs: Built Agent :: {"name":"New Agency"}
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}

1 Ответ

5 голосов
/ 10 февраля 2020

Ваш получатель для поля assignedUserIds называется gocuetAssignedUserIds(). Вот почему он не сериализован (картограф не распознает его), либо пометьте его аннотацией @JsonGetter("assignedUserIds"), либо переименуйте в getAssignedUserIds(), чтобы соответствовать полю.

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