Android访问本地JSON文件
1.本地JSON文件不能直像Drawable文件那样接访问,需要通过AssetManager来访问。
2.毕竟是文件类型的数据访问肯定是需要输入流的。
3.有注释的代码
/**
* 获得JSON文件数据
* @param context 上下文对象
* @param file JSON文件名字“*.json”
* @return json字符串
*/
private String getJSONFile(Context context,String file) {
//1. 创建字符串存储对象StringBuilder
StringBuilder stringBuilder=new StringBuilder();
//2. 获得AssetManager对象context.getAssets();方式来获取
AssetManager assetManager=this.getAssets();
try {
//3. 通过AssetManager对象的open方法获得输入流对象,绑定字符集urf-8
InputStreamReader inputStreamReader=new InputStreamReader(assetManager.open(file),"utf-8");
//4. 创建BufferedReader对象绑定输入流对象
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
String line="";
//5. 循环遍历读取出文件内的数据存储到StringBuilder内
while ((line=bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
//6. 返回StringBuilder.toString();则能获取到文件内所有的JSON数据了;
return stringBuilder.toString();
}
4.调用的方式
String jsonFile=getJSONFile(this,"JSON文件名.json");
Gson gson=new Gson();
//Bend为JSON文件数据对应的类
Bend bend=gson.fromJson(jsonFile,Bend.class);
附件:创建JSON文件方法
【Project】视图app/src/main文件夹->右击【New】->【Folder】->【Assets Folder】选项,创建assets文件夹
右击assets文件夹【New】->【File】->输入“文件名.json”创建JSON文件