в Room?
(Списки сохранять нельзя, поэтому нужно исходный список Job конвертировать в String, а при получении из Room обратно конвертировать его в список Job)
Job - Data Class состоит из 3 полей типа String (presentPost ,organization, date)
В данный момент у меня на выходе функции toJob() получается список, но список создаётся неправильно вот наглядно:
[Job(presentPost=Job(presentPost=должность 1, organization=, date=), Job(presentPost= organization=Организация1, organization=, date=), Job(presentPost= date=Дата1), organization=, date=), Job(presentPost=Job(presentPost=должность 2, organization=, date=), Job(presentPost= organization=Организация2, organization=, date=), Job(presentPost= date=Дата2), organization=, date=)]...
Используйте Gson - он и в строку перегонит почти что угодно и обратно. А код в примере может только список строк на строки разобрать и обратно. И то коряво
Спасибо, почитаю
Ты на котлине пишешь? Тогда уж лучше Kotlinx serialization. Он без рефлексии, куда быстрее чем Gson. Посмотри графики сравнения. Плюс Gson не всегда хорошо работает с котлином - может засеттить нулл в ненулл поле и ты получишь рантайм экзепшен. Ну и Kotlinx serialization имеет куда больше типизации и проверок в компайл тайме.
О, благодарю
А в чем проблема установки null в not-null поле? Это проблема не Gson, а кривой реализации api/структуры
В том что нужно кидать экзепшен сразу что строка не парсится, как делает это котлин сериализация.
Ну да, но не всегда надеешься на бэкэндщиков
И как это проверить вне runtime (без json)?
А как это проверяет котлин сериализация? Дружить с типизацией котлина.
И нет, ты меня не понял. Я не говорил, что это надо проверять в компайл тайме (это невозможно). Я говорил, что выскакивает рантайм экзепшен, но не оттуда откуда надо.
С этим согласен
Там экзепшен не "я не могу распарсить", а при обращении к проперти "ууупс, тут нулл случайно оказался, хотя не должно было быть. Ну я это, пошёл короче".
Обсуждают сегодня