У меня есть List<List<Integer>>
со значениемJava Gson разобрать не десериализации правильно
[[537316070],[306297332],[319303159],[538639811],[528406093],[166705854],[124574525],[967403337],[569514785],[304831454],[219384921],[308948513],[355538394],[297996417]]
после сериализации с Gson.
Когда я десериализации его с помощью
List<List<Integer>> data = (List<List<Integer>>) GsonParser.gson.fromJson(datastr, List.class);
Я получаю
[[5.3731607E8], [3.06297332E8], [3.19303159E8], [5.38639811E8], [5.28406093E8], [1.66705854E8], [1.24574525E8], [9.67403337E8], [5.69514785E8], [3.04831454E8], [2.19384921E8], [3.08948513E8], [3.55538394E8], [2.97996417E8]]
Кто-нибудь знает, что случилось?
Благодаря
Я предполагаю, что из-за стирания типа он компилируется нормально, но на самом деле он должен давать исключение Runtime Exception, но JVM не может его обнаружить. Я предполагаю, что процесс сериализации/десериализации преобразует его в двойные. –
JSON не знает разницы между целым числом и поплавком, и, следовательно, у парсеров нет подсказок. Таким образом, они будут стремиться втиснуть длинный int в двойной. Я столкнулся с этой проблемой на iPhone. –
Какое решение? Должен ли я просто хранить его как строки вместо ints? – omega