代码改变世界

Android加载asset下的json文件

2015-08-24 09:49  一切尽在掌握  阅读(1293)  评论(0编辑  收藏  举报

写成工具类:

	public static String getJson(Context context, String fileName) {  
		  
        StringBuilder stringBuilder = new StringBuilder();  
        try {  
            AssetManager assetManager = context.getAssets();  
            BufferedReader bf = new BufferedReader(new InputStreamReader(  
                    assetManager.open(fileName)));  
            String line;  
            while ((line = bf.readLine()) != null) {  
                stringBuilder.append(line);  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return stringBuilder.toString();  
    }

解析json的例子:

	public static List<List<TestRowBean>> parseJson(String json) {  
		List<List<TestRowBean>> beans = new ArrayList<List<TestRowBean>>();
		try {
			//多个包含多图的数组
			JSONArray jArray = new JSONArray(json);
			for (int i = 0; i < jArray.length(); i++) {
				JSONObject jobj = jArray.getJSONObject(i);
				//该数组是包含多图的一个bean 
				JSONArray jArr =jobj.getJSONArray("pics");
				
				List<TestRowBean> infos = new ArrayList<TestRowBean>();
				
				for (int j = 0; j < jArr.length(); j++) {
					JSONObject obj = jArr.getJSONObject(j);
					TestRowBean bean = new TestRowBean();
					bean.setUrl(obj.getString("url"));
					bean.setRow(obj.getInt("row"));
					bean.setIndex(obj.getInt("index"));
					bean.setHeight(obj.getInt("height"));
					bean.setWidth(obj.getInt("width"));
					infos.add(bean);
				}
				beans.add(infos);
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return beans;
	}

 

使用:最好开启子线程

String json = Common.getJson(this, "picgroup.json");
infos = Common.parseJson(json);
adapter.setData(infos);