Android 读取appjson配置文件

1 Json配置文件放置于Android 项目assets 文件下

Android除了提供/res目录存放资源文件外,在/assets目录也会提供存放资源文件,在/assets目录下面不会在R.java里面自动生 成ID,所以读取assets目录下面的资源文件需要提供路径,我们可以通过AssetManager类来访问这些文件。  

Android 读取app内json配置文件_第1张图片

 2 Activity中定义文件名称

private final static String fileName = "mainlistitems.json";//创建Thread 读取文件class DataThread extends Thread {@Overridepublic void run() {String jsonStr = AppJsonFileReader.getJson(getBaseContext(),fileName);data = AppJsonFileReader.setListData(jsonStr);dataHandler.sendMessage(dataHandler.obtainMessage());}}


 

AppJsonFileReader 类使用 AssetManager 读取文件如下,读取文本并解析存入Map

 

package com.jason.listviewoverview.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.content.res.AssetManager;public class AppJsonFileReader {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();}public static List> setData(String str) {try {List> data = new ArrayList>();JSONArray array = new JSONArray(str);int len = array.length();Map map;for (int i = 0; i < len; i++) {JSONObject object = array.getJSONObject(i);map = new HashMap();map.put("operator", object.getString("operator"));map.put("loginDate", object.getString("loginDate"));map.put("logoutDate", object.getString("logoutDate"));data.add(map);}return data;} catch (JSONException e) {e.printStackTrace();return null;}}public static List> setListData(String str) {List> data = new ArrayList>();try {JSONArray array = new JSONArray(str);int len = array.length();Map map;for (int i = 0; i < len; i++) {JSONObject object = array.getJSONObject(i);map = new HashMap();map.put("imageId", object.getString("imageId"));map.put("title", object.getString("title"));map.put("subTitle", object.getString("subTitle"));map.put("type", object.getString("type"));data.add(map);}} catch (JSONException e) {e.printStackTrace();}return data;}}

 

4 code 

https://github.com/jingshauizh/androidsummary/tree/master/ListViewOverView

 

更多相关文章

  1. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
  2. Android context 文件模式
  3. android在build中配置资源路径的方式
  4. 【android】android 开发错误点滴积累5月--Asset资源管理
  5. Android APK包文件解析
  6. Android Project from Existing Code 生成 R 文件错误、失败等问

随机推荐

  1. 第一天学习Android的一些笔记
  2. 【HR小时制】如何获取Android系统时间的
  3. android好帖子
  4. Android ListView 滚动加载数据
  5. Andriod开发教程 怎么导入现有的Android
  6. Error:(16, 0) Gradle DSL method not fo
  7. Android中消息处理机制-Handler剖析
  8. android截屏示例,适合流媒体 MediaPlayer
  9. Android小程序开发--跟随手指动的绿色小
  10. IOC框架