У меня есть итерация People, которую я сохраняю как string после преобразования из json. Я хочу знать, как мне преобразовать string обратно в список.
// Save data
val peopleString = myList.toString()
// String saved is
[People(name=john, age=23), People(name=mary, age=21), People(name=george, age=11)]
Можно ли теперь преобразовать peopleString обратно в список?
val peopleList: List<People> = peopleString.?
Это похоже на проблему XY, чего вы пытаетесь достичь?
Вы не можете десериализовать Iterable<T>, поскольку это, возможно, бесконечный список, а toString() - это красивая печать вместо сериализовать.
Почему бы вам не сохранить исходную строку JSON вместо вывода toString? Или, по крайней мере, используйте ту же инфраструктуру JSON, которая у вас уже есть, чтобы создать строку JSON вместо toString.





Короче нет ... вроде как.
Ваш вывод - нет JSON, а toString() - неправильная функция для использования, если вам нужен JSON. Вывод toString() не является надлежащим форматом сериализации, который можно понять и использовать для восстановления исходной структуры данных.
Преобразование структуры данных в некоторый формат, чтобы ее можно было передать, а затем перестроить, известно как сериализация. В Kotlin есть сериализатор, который может сериализовать объекты в различные форматы, включая JSON: https://github.com/Kotlin/kotlinx.serialization#quick-example.
Его не так просто использовать, как toString(), но этого следовало ожидать, поскольку цель toStrings сильно отличается от сериализации.
Эта строка не json (jsonformatter.curiousconcept.com доказывает это)