一、Json数据转换为对象
gson.fromJson()方法
CityInfoBean cityBean ; //json对应的实体类
try {
Gson gson = new Gson();
cityBean = gson.fromJson(result,CityInfoBean.class);
} catch (Exception e) {
e.printStackTrace();
}
二、对象 转换为Json数据
gson.toJson()方法
Gson gson = new Gson();
// 把cityInfoBean对象转换为json数据
String json = gson.toJson(cityInfoBean);
三、存储Json数据
Writer writer = null;
try {
OutputStream os = context.openFileOutput(fileName, Context.MODE_PRIVATE);
writer = new OutputStreamWriter(os);
writer.write(json);
} finally {
if (writer != null){
writer.close();
}
}
四、读取Json数据
StringBuilder stringBuilder = new StringBuilder();
try {
File file = new File(context.getFilesDir() + "/" + fileName);
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line;
while ((line = bf.readLine()) != null) {
stringBuilder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
本次项目中用到的省市区的数据,三级联动要一次性加载所有数据,如果每次都去服务器加载的话,应用不仅卡而且服务器压力也会增大,所以存储在本地,当应用开启后只拉取一次数据,在各个页面都可以使用。因为省市区的内容基本不变,要和后台保持一致,所以存储在本地,用到的时候直接在本地读取解析就方便很多啦