@AlexDeww

Что выбрать для хранения данных JSON или sqlite?

С сервера приходят данные в JSON формате.
Пример:
[
  {
    "currency_name": {
      "receive": "AFN",
      "send": "AED"
    },
    "name": "AFN",
    "denominations": [
      {
        "send_amount": "5",
        "receive_amount": "65",
        "order": "1"
      },
      {
        "send_amount": "10",
        "receive_amount": "130",
        "order": "2"
      },
      {
        "send_amount": "20",
        "receive_amount": "275",
        "order": "3"
      },
      {
        "send_amount": "50",
        "receive_amount": "725",
        "order": "4"
      },
      {
        "send_amount": "100",
        "receive_amount": "1500",
        "order": "5"
      },
      {
        "send_amount": "200",
        "receive_amount": "3250",
        "order": "6"
      }
    ]
  }
]



Таких файлов приходит 5 видов с разными типами данных. Объём в среднем 200 объектов на файл.
Файлы эти могут прилетать от раз день до раз в месяц.

Собственно возник вопрос как лучше их хранить.
Если использовать файлы, то их будет легко сохранить, но придется постоянно держать все данные в памяти.
Если использовать бд, то придется заморачиваться со вставкой данных, зато память не забита.

Каких-то сложных выборок по этим данным нет. Лишь 1 файл может меняться на самом девайсе и отправляться обратно на сервер.
  • Вопрос задан
  • 1831 просмотр
Решения вопроса 1
@red-barbarian
про память посмотри как-нибудь в студио сколько занимает приложение памяти. объем твоих данных это мелочи.
про то как хранить.
делай все проще. если не стоит вопрос (насущный) по оптимизации - делай просто. Например часто достаточно несколько строк с gson что бы распарсить json в объекты. Для room строк побольше. Для чистого sqlite уже нужно потрудиться.

Далее. Преждевременная оптимизация это зло. Сейчас ты даже не знаешь как будет меняться твое приложение и какие узкие места в нем будут. Поэтому преждевременно что-то усложнять это стрелять в слепую.

Далее. Сто пудов, что если приложение будет полезным и будет долго жить, то будут изменения. Поэтому задача разбить приложение на более-менее независимые части. Как это сделать. Например у тебя есть часть которая отображает данные и которая предоставляет данные. И есть некое соглашение между ними. Это соглашение "оформляется" в приложении интерфейсом. Например репозиторием. Т.е. первая часть использует репозиторий (через его интерфейс) . Другая часть предоставляет реализацию репозитория. Например через парсинг текста json.
Это дает возможность при необходимости быстро заменить реализацию репозитория, что бы он брал данные из базы. Не меняя ничего другого.
примерно так)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
В БД хранить эффективнее всего.
Извлечь потом можете хоть в JSON, хоть в XML, или отобразить в веб, как угодно.
А файлы парсить - не запросы писать. Гибкости в парсе никакой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы