Мне нужно сохранить данные в SharedPreferences
таким образом, чтобы у меня был такой объект:
{
"days": [
{
"exercises": [
{
"name": "Bench Press",
"sets": 3,
"reps": 8
},
{
"name": "Skull Crushers",
"sets": 3,
"reps": 8
},
{
"name": "Flys",
"sets": 3,
"reps": 8
}
]
},
{
"exercises": [
{
"name": "Bench Press",
"sets": 3,
"reps": 8
},
{
"name": "Skull Crushers",
"sets": 3,
"reps": 8
},
{
"name": "Flys",
"sets": 3,
"reps": 8
}
]
}
]
}
Мне нужно будет вытащить объект и добавить к нему.Я знаю, что вы не можете сохранить карты в SharedPreferences
.Я начинаю думать, что лучше всего использовать ObjectOutputStream
, но я не уверен, лучше ли это использовать внутреннюю память.Я думаю, что я просто ищу руководство относительно того, каковы мои лучшие варианты.
edit: из того, что сказал Advice-Dog
, я думаю, что мой лучший выбор - использовать gson
.Значит ли это, что когда я хочу (например) добавить другое упражнение ко второму индексу «дней», я сначала извлеку объект из предпочтений, преобразую его из gson
в объект, затем добавлю упражнение, затемпреобразовать его обратно в gson
, затем перезаписать настройки?Я не говорю, что это плохо, я просто хочу знать, если это то, что должно быть сделано, и если это целесообразно.