Android本地Json配置文件实现笔记
来源:互联网 发布:ubuntu文件服务器搭建 编辑:程序博客网 时间:2024/04/20 01:08
简述
开发中不可避免会遇到这样的需求,通过json作为配置文件配置app(比如本地数据库的构建等)。
1.Json格式
假设有这样一个需求:作为配置文件,我们设计了几种奖品用于用户抽奖。
以一个一般的Json格式为例:
{ "filed": true, //配置参数,本例不用只做示范 "rewards": [ //奖品列表 { "name": "脆脆鲨", //奖品名称 "probability": "0.35", //中奖概率 "image_res": 1, //奖品icon "reward_serial": "21313133"//奖品serial,用于api请求等 }, { "name": "东方神牛", "probability": "0.45", "image_res": 2, "reward_serial": "21313134" }, { "name": "旺仔牛奶", "probability": "0.2", "image_res": 3, "reward_serial": "21313135" } ]}
2.序列化
为了更清楚的描述,我们创建一个Reward类,用来表示这些奖品对象
public class Reward { public String name; public float probability; public int imageResource; public String serial; public Reward(String name, float probability, int imageResource, String rewardSerial) { this.name = name; this.probability = probability; this.imageResource = imageResource; this.Serial = rewardSerial; }}
接下来就可以解析json配置文件然后序列化为JsonObject了。
//获取json数据 String rewardJson = ""; String rewardnJsonLine; //assets文件夹下json文件的路径->打开json文件 BufferedReader bufferedReader = new BufferedReader(newInputStreamReader(context.getAssets().open("db/reward.json"))); while ((rewardJsonLine = bufferedReader.readLine()) != null) { rewardJson += rewardJsonLine; }//序列化json数据 JSONObject jsonObject = new JSONObject(rewardJson); boolean filed = jsonObject.getBoolean("filed"); //获得配置参数 JSONArray rewards = jsonObject.getJSONArray("rewards");//获得奖品列表//获得序列化的奖品集合ArrayList<Reward> list = new ArrayList<>();//遍历jsonArray,将每个JsonObject转换为对应的Reward对象for (int i = 0, length = rewards.length(); i < length; i++) { JSONObject o = rewards.getJSONObject(i); Reward reward = new Reward(o.getString("name"), Float.parseFloat(String.valueOf(o.getString("probability"))), o.getInt("image_res"), o.getString("reward_serial") ); probability += reward.probability; list.add(reward);}//接下来就可以处理这些对象了(比如操作数据库,比如通过概率进行抽奖等等)~
1 0
- Android本地Json配置文件实现笔记
- Android学习笔记(一)之解析本地json数据
- firefly笔记之配置文件config.json
- 实现读取本地json格式文件并解析
- Android 读取app内json配置文件
- Android学习笔记----json
- android 读取本地的json文件
- android 保存Json数据到本地
- Android访问assets本地Json文件
- Android中访问assets本地json文件
- Android访问assets本地Json文件
- Android学习笔记4---配置文件
- sqlite Android实现本地缓存
- Android本地实现已读未读功能
- Node.js学习笔记(8、配置文件package.json)
- 1. Laravel5学习笔记:Composer.json配置文件说明
- 1. Laravel5学习笔记:Composer.json配置文件说明
- [学习笔记]外部调用本地接口返回JSON数据
- 图的广度优先遍历
- AppBarLayout.OnOffsetChangedListener的使用
- 程序运行时内存分布
- 多线程(十八)AQS(四):CLH同步队列
- Android百分比布局Percent支持库
- Android本地Json配置文件实现笔记
- ParallaxViewPager:ViewPager的视差背景效果
- tensorflow keras入门,深度学习跑起来
- 出现 com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error 异常的原因及解决方法
- bzoj 1770 [Usaco2009 Nov]lights 燈
- RecyclerView:带header的grid
- RecyclerView:带header和footer的grid
- 自定义TabBar
- RecyclerView:带header&footer&加载更多