Gson Long потерял данные при разборе со строки

У меня есть строковое представление JSON некоторых объектов класса объектов

public class SMPBBaseObjectsList {

    public ArrayList<Object> data = new ArrayList<>();
    public Integer count;
    public Integer limitFrom;
    public Integer limitTo;
    public Boolean hasMore;
    public String dataItemsClass;
}

И у меня есть JSON

{ "ClassItem": "smpb.utility.classes.SMPBBaseObjectsList", "dataItemsClass": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013", "данные": [{ "ID": 1374046117510970000,» Имя ":" Test3" , "classItem": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013"}], "фильтр": { "OrderItems": [], "filterItems": []} }

Я пытаюсь разобрать этот JSON и создать объект моего класса с помощью следующего кода:

 String json = "{\"classItem\":\"smpb.utility.classes.SMPBBaseObjectsList\",\"dataItemsClass\":\"smpb.base.classes.SMPBUser\",\"dataSliceCode\":\"012013\",\"data\":[{\"id\":1374046117510970000,\"Name\":\"Test3\",\"classItem\":\"smpb.base.classes.SMPBUser\",\"dataSliceCode\":\"012013\"}],\"filter\":{\"orderItems\":[],\"filterItems\":[]}}";
        SMPBBaseObjectsList list = new GsonBuilder().create().fromJson(json, SMPBBaseObjectsList.class);
        System.out.println("BEFORE:" + json);
        System.out.println("AFTER: " + list);

Системные выходы:

ДО:{ "ClassItem": "smpb.utility.classes.SMPBBaseObjectsList", "dataItemsClass": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013", "данные": [{"Идентификатор": 1374044905885298000, "Имя": "TEST3", "classItem": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013"}], "фильтр": { "OrderItems": [], "filterItems": [ ]}}

ПОСЛЕ: { "ClassItem": "smpb.utility.classes.SMPBBaseObjectsList", "dataItemsClass": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013", "данные": [{ "Имя": "Test3" ,"Идентификатор": 1.374044905885298011E18, "ClassItem": "smpb.base.classes.SMPBUser", "dataSliceCode": "012013"}], "фильтр": { "OrderItems": [], "filterItems": []}}

Как вы можете видеть в Json String, у меня есть идентификатор со значением 1374044905885298000, но когда объект сериализован из строки, я получил 1.374044905885298011E18

И проблема в том, что это представление Long потерял последние нули 0000, и я получил Long 1374044905885297920

Почему? и как это исправить?

Данные в массиве - это String map, и все они уже имеют формат Long id Double.

Я пытаюсь зарегистрировать Adapater для Long или Double, но никогда не срабатывал.

Версия Gson 2.2.4

ОБНОВИТЬ

Это не дубликат вопроса

Как помешать Gson преобразовать длинное число (строку json) в формат научной нотации?

Ответы на вопрос(1)

Ваш ответ на вопрос