Json储存转载自dandelionela博客: https://blog.csdn.net/dandelionela/article/details/90527073.
存储位置
① 在【app/src/main】目录下创建【assets】文件夹(与java文件夹同级);
② 在该文件夹下新建file,格式为【xxx.json】,文件名xxx随意。
读取Assets目录下Json文件数据
参考:https://blog.csdn.net/qq_34915398/article/details/82660129
① 使用系统的方法读取Json文件的数据
-
public static String getJson(Context context, String fileName) {
-
// 将json数据变成字符串
-
StringBuilder stringBuilder =
new StringBuilder();
-
// 获得assets资源管理器
-
AssetManager assetManager = context.getAssets();
-
// 使用IO流读取json文件内容
-
try {
-
BufferedReader bufferedReader =
new BufferedReader(
new InputStreamReader(
-
assetManager.open(fileName),
"utf-8"));
-
String line;
-
while ((line = bufferedReader.readLine()) !=
null) {
-
stringBuilder.append(line.trim());
-
}
-
}
catch (IOException e) {
-
e.printStackTrace();
-
}
-
return stringBuilder.toString();
-
}
② 调用该方法
-
// 解析从本地Json中存储的数据
-
String strJsonData = getJson(context,
"xxx.json");
// "getJson()"方法为上述静态方法;“xxx”为assets目录下的json文件名,不能出错
-
// 使用Gson来解析String型的JSon数据【注意:使用Gson需要在“build.gradle”中添加Gson的依赖】
-
Gson gson =
new Gson();
-
MyModel model = gson.fromJson(strJsonData, MyModel.class);
// "MyModel"为解析实体类
向Assets目录下Json文件写入新数据
参考:https://blog.csdn.net/lizhenmingdirk/article/details/53688909
经几番考证,认为【app/src/main/assets】目录下的文件只能读取不能写入。
因此,想把网络上请求下来的json数据缓存在该目录下的想法暂时宣告失败。