Я предполагаю, что ваш JSON выглядит следующим образом:
{
id: 42,
car_id: 102,
coordinates: [
{ lat: ..., lon: ..., timestamp: ... },
{ lat: ..., lon: ..., timestamp: ... },
{ lat: ..., lon: ..., timestamp: ... },
...
]
}
Если вы используете JSON, то есть только 4 способа уменьшить размер:
Remove неиспользованные данные
Вы можете удалить повторяющиеся записи из вашего списка. Если автомобиль стоит на час, у вас будет 180 одинаковых записей подряд. Вы можете сохранить только один, потому что нарисованная линия на карте не будет выглядеть иначе.
Удалите timestamp
, если он вам не нужен. Если массив упорядочен, вам может не понадобиться отметка времени для сортировки.
термоусадочную ваше представление данных
Каждый символ имеет значение, если у вас есть 4320 записи. Таким образом, вы можете заменить, например, lat
и lon
с x
и y
. Это уменьшает размер на 4*4320 = 17280
символов.
Изменить представление. Если вам не нужно штамп времени, вы могли бы просто уменьшить структуру данных coordinates: [[1,2],[3,4],[5,6],...]
(где 1
, 3
и 5
являются lat
части и 2
, 4
, 6
являются lon
части координат). Это может уменьшить размер JSON еще на 20-40%.
сжимать данные
- Если возможно использование GZIP (или любой другой алгоритм сжатия). Таким образом, вы можете легко уменьшить выход JSON до 10-20% от исходного размера.
Используйте более компактный формат данных
Посмотрите протокола буферами (от Google). Spring поддерживает его, и есть также библиотека JavaScript.
Существует несколько других протоколов, которые могут уменьшить размер данных. То есть Thrift (от Apache/Facebook), но я не знаю, поддерживает ли Spring/JavaScript.
Это в основном все, что вы можете сделать.