安卓加载asset中的json文件_Android解析Asset目录下的json文件
在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文件相关推荐
- 到另一个文件夹 复制hdfs上的文件_复制指定目录下的全部文件到另一个目录中...
linux下文件的复制.移动与删除命令为:cp,mv,rm 复制指定目录下的全部文件到另一个目录中 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 ...
- php中如何判断目录是否存在文件_PHP判断指定目录下是否存在文件
这篇文章介绍的内容是关于PHP判断指定目录下是否存在文件 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下/* 功能:判断某个目录下是否存在文件: 参数:$path -- 要进行判断的目 ...
- python删除过期文件_Python删除指定目录下的过期文件的代码
在代码过程中,将代码过程中比较常用的一些代码段做个备份,如下的代码是关于Python删除指定目录下的过期文件的代码,应该能对小伙伴也有帮助. import os import sys import t ...
- java删除指定文件_java删除指定目录下指定格式文件的方法
本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import ...
- java 空文件_java删除指定目录下所有空文件夹的方法
本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util ...
- 安卓加载mysql数据到列表里_Android如何从数据库中加载海量数据
在Android3.0之前,很多应用程序响应性能方面有缺陷,其中比较典型的错误行为是在UI线程中执行了查询数据操作,尤其是一次性从database查出大量数据并加载到ListView里,用这种方式载入 ...
- linux查询所有目录的txt文件,Linux 在指定目录下的所有文件中查找text文本的方法...
1.使用grep -rnw查找指定文本grep -rnw '/path/to/somewhere/' -e 'pattern' -r或-R 递归遍历目录及子目录 -n 是行号 -w 代表匹配整个单词. ...
- 面试过程中遇到的代码问题 --- 查询一个目录下的所有文件和文件夹
这个题中考到了对于IO流API的使用,具体代码如下: package shr.getfile;import java.io.File;/*** @Author: 史皓燃* @CreateDate 20 ...
- vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI
展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...
最新文章
- Android系统源码编译最重要的一步
- 开发日记-20190516 关键词 MVVM-代码浏览结束
- jq js json 转字符串_JQuery如何把JSON字符串转为JSON对象
- 理解node.js中的 Event Loop
- java泛型的作用及其基本概念
- mysql geometry 附近的人_mysql中geometry类型的简单使用(搜索附近的人)
- 一种内核到用户空间的高效数据传输技术
- 取代Win10 消息称Windows 10X将在明年推出
- C++——流类库和输入/输出
- git修改本地仓库和远程仓库名称
- 【[TJOI2014]上升子序列】
- POJ1915(Knight Moves)
- 基于FPGA的SRIO核的使用
- 自己动手写CPU(6)简单算术操作指令
- 2362:数字游戏(小k和小p的传奇)
- 如何更改工程内最少的代码修改系统UISwitch的大小和样式
- 【白帽子讲Web安全】第二章 浏览器安全
- 10个Python爬虫实战项目
- 看完这篇 教你玩转渗透测试靶机——Metasploitable2
- 汇编 - 环境设置(Environment Setup)
热门文章
- 不同长度数据项的排序
- dhl:使用return RedirectToAction()和 return view()
- eclipse源服务器未能找到,eclipse - HTTP状态[404]? [未找到](原始服务器未找到当前表示) - 堆栈内存溢出...
- Ubuntu用户与用户组
- linux分文件编程、静态库与动态库
- 采样频率和带宽的关系_基于矢量网络分析仪的 TDR 与传统采样示波器 TDR 之间的测量性能和优势比较...
- android基于蓝牙实验,基于Android智能蓝牙的血糖实时监测系统的设计与实现
- chrome java虚拟机_JATT:谷歌的Java虚拟机自动调整工具
- 国开计算机应用基础中考答案,国开计算机应用基础模块4PowerPoint2010电子演示文稿系统答案...
- python入门之运算符的使用的答案_python入门教程之基本算术运算符