从URL中保存JSON以进行本地开发

时间:2013-01-06 07:14:10

标签: android json

我有一个Android应用程序,从URL下载json数据,解析然后显示它。 不幸的是,我将离开互联网一段时间,但我想继续在应用程序上工作。

有没有办法可以保存这些数据以供离线使用?

基本上,有没有办法我可以对JSONObject进行硬编码以使用link

中的数据

这样我会在本地使用它吗?

3 个答案:

答案 0 :(得分:1)

您有以下选项:

  1. 使用RoboSpice

  2. 使用android排球库

  3. 以上两个库都具有缓存功能。有条件地,您可以使缓存无效以检索更新的数据。

    使用共享首选项存储JSON字符串,并在需要时更新该字符串。

    存储数据:

    SharedPreferences settings = getApplicationContext().getSharedPreferences("PREF_NAME", MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString("strJSON", "" + strJSONfromServer);
    editor.commit();
    

    要检索数据:

    SharedPreferences settings = getApplicationContext().getSharedPreferences("PREF_NAME", MODE_PRIVATE);
    String strData = settings.getString("strJSON", ""); 
    

    清除数据:

    SharedPreferences settings = getApplicationContext().getSharedPreferences("strJSON",MODE_PRIVATE);
    SharedPreferences.Editor editor = settings.edit();
    editor.remove("strJSON");
    editor.commit();
    

答案 1 :(得分:0)

如果您的计算机上安装了http服务器,则可以将该json数据保存为文本文件,并使用以下网址从设备访问它:“http://10.0.2.2:PORT_NUMBER

另一种解决方案,不需要http服务器,您可以将数据保存为文本文件并从您的设备访问它,如本答案中所述: Reading a simple text file

编辑: 更简单的方法就是将数据保存在字符串中:

String stringJson = "{\"Baseball\":[{\"Opponent\": ... " 

(请注意,您必须使用\“)

转义字符

解析json数据,你需要做的就是

JSONObject jsonObject = new JSONObject(stringJson);

答案 2 :(得分:0)

将json存储在assets目录下的文件中的另一个选项。然后,您将能够像应用程序中的任何其他文件一样访问它:

http://developer.android.com/reference/android/content/res/AssetManager.html