在app module中的src/main/assets目录下我们准备了两个json文件:

destination.json如下:

{

"main/tabs/sofa": {

"isFragment": true,

"asStarter": false,

"needLogin": false,

"pageUrl": "main/tabs/sofa",

"className": "com.test.ppjoke.ui.notifications.NotificationsFragment",

"id": 448706824

},

"main/tabs/dash": {

"isFragment": true,

"asStarter": false,

"needLogin": false,

"pageUrl": "main/tabs/dash",

"className": "com.test.ppjoke.ui.dashboard.DashboardFragment",

"id": 938694224

},

"main/tabs/home": {

"isFragment": true,

"asStarter": true,

"needLogin": false,

"pageUrl": "main/tabs/home",

"className": "com.test.ppjoke.ui.home.HomeFragment",

"id": 509754652

},

"main/tabs/my": {

"isFragment": true,

"asStarter": false,

"needLogin": false,

"pageUrl": "main/tabs/my",

"className": "com.test.ppjoke.ui.my.MyFragment",

"id": 750793084

}

}

对应的destination的javabean文件:

public class Destination {

public String pageUrl;

public int id;

public boolean needLogin;

public boolean asStarter;

public boolean isFragment;

public String className;

}

main_tabs_config.json如下:

{

"activeColor": "#333333",

"inActiveColor": "#666666",

"selectTab": 0,

"tabs": [

{

"size": 24,

"enable": true,

"index": 0,

"pageUrl": "main/tabs/home",

"title": "首页"

},

{

"size": 24,

"enable": true,

"index": 1,

"pageUrl": "main/tabs/sofa",

"title": "沙发"

},

{

"size": 40,

"enable": true,

"index": 2,

"tintColor": "#ff678f",

"pageUrl": "main/tabs/publish",

"title": ""

},

{

"size": 24,

"enable": true,

"index": 3,

"pageUrl": "main/tabs/dash",

"title": "发现"

},

{

"size": 24,

"enable": true,

"index": 4,

"pageUrl": "main/tabs/my",

"title": "我的"

}

]

}

对应的BottomBar的JavaBean文件如下:

import java.util.List;

public class BottomBar {

/**

* activeColor : #333333

* inActiveColor : #666666

* tabs : [{"size":24,"enable":true,"index":0,"pageUrl":"main/tabs/home","title":"首页"},{"size":24,"enable":true,"index":1,"pageUrl":"main/tabs/sofa","title":"沙发"},{"size":40,"enable":true,"index":2,"tintColor":"#ff678f","pageUrl":"main/tabs/publish","title":""},{"size":24,"enable":true,"index":3,"pageUrl":"main/tabs/find","title":"发现"},{"size":24,"enable":true,"index":4,"pageUrl":"main/tabs/my","title":"我的"}]

*/

public String activeColor;

public String inActiveColor;

public List tabs;

public int selectTab;//底部导航栏默认选中项

public static class Tab {

/**

* size : 24

* enable : true

* index : 0

* pageUrl : main/tabs/home

* title : 首页

* tintColor : #ff678f

*/

public int size;

public boolean enable;

public int index;

public String pageUrl;

public String title;

public String tintColor;

}

}

读取json并解析的java代码:

import android.content.res.AssetManager;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.TypeReference;

import com.test.ppjoke.model.BottomBar;

import com.test.ppjoke.model.Destination;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

public class AppConfig {

private static HashMap sDestConfig;

private static BottomBar sBottomBar;

public static HashMap getDestConfig() {

if (sDestConfig == null) {

String content = parseFile("destination.json");

sDestConfig = JSON.parseObject(content, new TypeReference>() {

});

}

return sDestConfig;

}

public static BottomBar getBottomBarConfig() {

if (sBottomBar == null) {

String content = parseFile("main_tabs_config.json");

sBottomBar = JSON.parseObject(content, BottomBar.class);

}

return sBottomBar;

}

private static String parseFile(String fileName) {

AssetManager assets = AppGlobals.getApplication().getAssets();

InputStream is = null;

BufferedReader br = null;

StringBuilder builder = new StringBuilder();

try {

is = assets.open(fileName);

br = new BufferedReader(new InputStreamReader(is));

String line = null;

while ((line = br.readLine()) != null) {

builder.append(line);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (is != null) {

is.close();

}

if (br != null) {

br.close();

}

} catch (Exception e) {

}

}

return builder.toString();

}

}

安卓加载asset中的json文件_Android解析Asset目录下的json文件相关推荐

  1. 到另一个文件夹 复制hdfs上的文件_复制指定目录下的全部文件到另一个目录中...

    linux下文件的复制.移动与删除命令为:cp,mv,rm 复制指定目录下的全部文件到另一个目录中 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 ...

  2. php中如何判断目录是否存在文件_PHP判断指定目录下是否存在文件

    这篇文章介绍的内容是关于PHP判断指定目录下是否存在文件 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下/* 功能:判断某个目录下是否存在文件: 参数:$path -- 要进行判断的目 ...

  3. python删除过期文件_Python删除指定目录下的过期文件的代码

    在代码过程中,将代码过程中比较常用的一些代码段做个备份,如下的代码是关于Python删除指定目录下的过期文件的代码,应该能对小伙伴也有帮助. import os import sys import t ...

  4. java删除指定文件_java删除指定目录下指定格式文件的方法

    本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import ...

  5. java 空文件_java删除指定目录下所有空文件夹的方法

    本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util ...

  6. 安卓加载mysql数据到列表里_Android如何从数据库中加载海量数据

    在Android3.0之前,很多应用程序响应性能方面有缺陷,其中比较典型的错误行为是在UI线程中执行了查询数据操作,尤其是一次性从database查出大量数据并加载到ListView里,用这种方式载入 ...

  7. linux查询所有目录的txt文件,Linux 在指定目录下的所有文件中查找text文本的方法...

    1.使用grep -rnw查找指定文本grep -rnw '/path/to/somewhere/' -e 'pattern' -r或-R 递归遍历目录及子目录 -n 是行号 -w 代表匹配整个单词. ...

  8. 面试过程中遇到的代码问题 --- 查询一个目录下的所有文件和文件夹

    这个题中考到了对于IO流API的使用,具体代码如下: package shr.getfile;import java.io.File;/*** @Author: 史皓燃* @CreateDate 20 ...

  9. vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI

    展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...

最新文章

  1. Android系统源码编译最重要的一步
  2. 开发日记-20190516 关键词 MVVM-代码浏览结束
  3. jq js json 转字符串_JQuery如何把JSON字符串转为JSON对象
  4. 理解node.js中的 Event Loop
  5. java泛型的作用及其基本概念
  6. mysql geometry 附近的人_mysql中geometry类型的简单使用(搜索附近的人)
  7. 一种内核到用户空间的高效数据传输技术
  8. 取代Win10 消息称Windows 10X将在明年推出
  9. C++——流类库和输入/输出
  10. git修改本地仓库和远程仓库名称
  11. 【[TJOI2014]上升子序列】
  12. POJ1915(Knight Moves)
  13. 基于FPGA的SRIO核的使用
  14. 自己动手写CPU(6)简单算术操作指令
  15. 2362:数字游戏(小k和小p的传奇)
  16. 如何更改工程内最少的代码修改系统UISwitch的大小和样式
  17. 【白帽子讲Web安全】第二章 浏览器安全
  18. 10个Python爬虫实战项目
  19. 看完这篇 教你玩转渗透测试靶机——Metasploitable2
  20. 汇编 - 环境设置(Environment Setup)

热门文章

  1. 不同长度数据项的排序
  2. dhl:使用return RedirectToAction()和 return view()
  3. eclipse源服务器未能找到,eclipse - HTTP状态[404]? [未找到](原始服务器未找到当前表示) - 堆栈内存溢出...
  4. Ubuntu用户与用户组
  5. linux分文件编程、静态库与动态库
  6. 采样频率和带宽的关系_基于矢量网络分析仪的 TDR 与传统采样示波器 TDR 之间的测量性能和优势比较...
  7. android基于蓝牙实验,基于Android智能蓝牙的血糖实时监测系统的设计与实现
  8. chrome java虚拟机_JATT:谷歌的Java虚拟机自动调整工具
  9. 国开计算机应用基础中考答案,国开计算机应用基础模块4PowerPoint2010电子演示文稿系统答案...
  10. python入门之运算符的使用的答案_python入门教程之基本算术运算符