Как хранить данные json при использовании Android Studio 3.0?

В моем приложении для Android я desgin следующую структуру данных json, в будущем данные json будут прочитаны, добавлены, обновлены и удалены.

Я думаю, что я должен хранить данные json, как я могу сохранить данные json? мне нужно сохранить его в виде текстового файла в папке \ assets?

И еще, есть ли простой способ обработки данных json? мне нужна библиотека Gson?

{ "Setting": [ { "id": "34345", "Bluetooth": { "Status": "ON" }, "WiFi": { "Name": "MyConnect", "Status": "OFF" } } , { "id": "16454", "Bluetooth": { "Status": "OFF" } } ] } 

Сравните с ответом https://stackoverflow.com/a/18463758/4265739

Самый простой способ – использовать SharedPreferences и Gson.

добавить зависимость GSON в файле Gradle:

 compile 'com.google.code.gson:gson:2.8.0' 

Код, скорректированный для Kotlin, предназначен для хранения:

 val prefsEditor = PreferenceManager.getDefaultSharedPreferences(this).edit() val json = Gson().toJson(yourObject) prefsEditor.putString("yourObject", json) prefsEditor.commit() 

для извлечения:

  val json: String = sp.getString("yourObject", "") val yourObject = Gson().fromJson<YourObject>(json, YourObject::class.java) 

Если у вас много данных, посмотрите на https://developer.android.com/guide/topics/data/data-storage.html для своих опций

Intereting Posts
Использование функциональных интерфейсов с функциями функций в Котлине Ошибка ввода типа. Firebase JobDispatcher Как настроить значок (drawable) для кнопки в anko? Kotlin – Как найти и отличить элемент по типу Android Apk выходит из строя после подписания встроенного – Proguard уже выключен Каков правильный способ добавления абстрактного частного получателя и публичного сеттера? Преобразуйте MainActivity с помощью панели действий / панели инструментов и кнопки с плавающей точкой в ​​Anko Android Plugin 2.2.0-alpha1 не скомпилируется с Kotlin Тестирование AnkoComponents и насмешка AnkoContext Могу ли я обновить глубоко вложенный неизменный объект, не сообщая ему о его контексте? Функция статического расширения на Java-классе Как получить доступ к членам класса с таким же именем в функции расширения в Kotlin android Прослушивание сообщений и написание команд по наблюдаемому потоку Как использовать команду `java` с` kotlin-compiler.jar` для компиляции исходных кодов Kotlin? Есть ли лучший способ для фильтра null в списке?