GSON, удалить список объектов в пользовательской сериализации - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть большой объект для сериализации в JSON.Для этого я использовал библиотеку gson.Объект содержит рекурсивный объект, и мне нужно создать собственный сериализатор.

Это простой пример моего объекта Java:

private class Test {

        private BigInteger id;
        private Date saveTime;
        @OneToMany
        private List<NTTDeviceTracker> nTTDeviceTrackerList;
        @ManyToOne
        private NTTDeviceIdentity nTTDeviceIdentity;
        //getter and setter

    }
public void writeJsonTest(Test test) {

        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(Test.class, device);
        Gson customGson = gsonBuilder.create();  
        String obj = customGson.toJson(test);
}
JsonSerializer<Test> device = new JsonSerializer<Test>() {  
    @Override
    public JsonElement serialize(Test test, Type typeOfSrc, JsonSerializationContext context) {
        JsonObject obj = new JsonObject();

        Gson gson = new GsonBuilder().create();
        JsonElement jsonElement = gson.toJsonTree(test);
        JsonObject jsonObject = (JsonObject) jsonElement;

        jsonObject.remove("nTTDeviceTrackerList");
        jsonObject.remove("nTTDeviceIdentity");
        jsonObject.remove("saveTime");
        return jsonObject;
    }
};

Я бы удалил nTTDeviceTrackerList и nTTDeviceIdentity , потому что я хочу настроить синтаксический анализ json, но jsonObject.remove не работает для списка объектов / объектов.

Какможно исключить из сериализации gson какой-либо объект без исключения аннотаций или без изменения класса Test?

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