ANDROID:JSON阵列保存在内部存储中,无需互联网连接即可工作

时间:2014-08-26 15:15:12

标签: android internal-storage

我有一个PHP JSON,它发送给我JSONArray。

  public JSONArray lastTweet()throws ClientProtocolException,IOException,JSONException{
      StringBuilder url = new StringBuilder(URL);
      HttpGet get = new HttpGet(url.toString());
      HttpResponse r = client.execute(get);
      int status = r.getStatusLine().getStatusCode();
      if(status == 200){
          HttpEntity e = r.getEntity();
          String data = EntityUtils.toString(e);
          JSONArray timeline = new JSONArray(data);
         return timeline;
      }
    return null;

  }

我可以从这个JSONArray(时间轴)获取对象和值,但它只适用于应用程序有互联网连接。我想将这个JSON保存在我的内部存储器中,就像json文件一样,并在离线mod中使用此文件。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

尝试使用JSON Simple库,它允许轻松编码/解码JSON文件。

示例:Encoding

然后它很简单:

try {
    outStream = openFileOutput("tweet.json", Context.MODE_PRIVATE);
    outStream.write(json.getJSONString().getBytes());
    outStream.close();
} catch (Exception e) {
    e.printStackTrace();
}

但是,如果您不想永久存储或重新发送,我建议使用缓存 请注意,缓存可以自动擦除,因此取决于您。有关此问题的更多信息,请访问Android开发人员网站:Android: Saving Files # Write Internal Storage

<强>更新 事实证明,android JSONObject.toString()产生连贯的JSON输出,可以像上面的desciber一样保存到文件中,没有任何第三方库,但是你需要自己将它编组回JSONObject / Array / Primitive,并且将需要一些额外的工作。