我有一个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中使用此文件。我怎么能这样做?
答案 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,并且将需要一些额外的工作。