Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android Studio 3.0时如何存储json数据?_Json_Kotlin_Android Studio 3.0 - Fatal编程技术网

使用Android Studio 3.0时如何存储json数据?

使用Android Studio 3.0时如何存储json数据?,json,kotlin,android-studio-3.0,Json,Kotlin,Android Studio 3.0,在我的Android应用程序中,我设计了以下json数据结构,json数据将在将来的节点中被读取、添加、更新和删除 我想我应该存储json数据,如何持久化json数据?是否必须将其保存为文件夹\assets下的文本文件 还有,有没有处理json数据的简单方法?我需要使用Gson图书馆吗 { "Setting": [ { "id": "34345", "Bluetooth": { "Status": "ON" }, "WiFi":

在我的Android应用程序中,我设计了以下json数据结构,json数据将在将来的节点中被读取、添加、更新和删除

我想我应该存储json数据,如何持久化json数据?是否必须将其保存为文件夹\assets下的文本文件

还有,有没有处理json数据的简单方法?我需要使用Gson图书馆吗

{
   "Setting": [

      {
        "id": "34345",
        "Bluetooth": { "Status": "ON" },
        "WiFi": { "Name": "MyConnect", "Status": "OFF"  }
      }
      ,

      {
         "id": "16454",
         "Bluetooth": { "Status": "OFF" }
      }

   ]

}
与答案相比

最简单的方法是使用
SharedReferences
和Gson

在Gradle文件中添加GSON依赖项:

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)
val-json:String=sp.getString(“yourObject”,“yourObject”)
val yourObject=Gson().fromJson(json,yourObject::class.java)

如果您有大量数据,请查看您的选项

谢谢!当我使用SharedReferences存储json字符串时,json的字符数有限制吗?例如,json字符串的字符数不能超过256。据我所知,限制是您的数据必须适合堆。所以没有。不过,如果您的数据超过~1MB,我不会选择共享参考。但存在大于10MB的应用程序。