1.Gradle依赖
2.Json转HashMap 例子
3.Json转实体类 例子
1.Gradle依赖
//fastjson解析
api 'com.alibaba:fastjson:1.2.59'
2.Json转HashMap 例子
-
destination.json放在assets目录中
image.png -
destination.json
{
"main/tabs/sofa": {
"isFragment": true,
"asStarter": false,
"needLogin": false,
"pageUrl": "main/tabs/sofa",
"className": "com.mooc.ppjoke.ui.sofa.SofaFragment",
"id": 147242568
}
}
- 通过GsonFormat转Java类
public class Destination {
public String pageUrl;
public int id;
public boolean needLogin;
public boolean asStarter;
public boolean isFragment;
public String className;
}
- AppConfig.java
public class AppConfig {
private static HashMap<String, Destination> sDestConfig;
public static HashMap<String, Destination> getDestConfig() {
if (sDestConfig == null) {
String content = parseFile("destination.json");
sDestConfig = JSON.parseObject(content, new TypeReference<HashMap<String, Destination>>() {
});
}
return sDestConfig;
}
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();
}
}
- AppGlobals.java
public class AppGlobals {
private static Application sApplication;
public static Application getApplication() {
if (sApplication == null) {
try {
sApplication = (Application) Class.forName("android.app.ActivityThread")
.getMethod("currentApplication")
.invoke(null, (Object[]) null);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return sApplication;
}
}
3.Json转实体类 例子
-
main_tabs_config.json放在assets中
image.png -
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": "沙发"
}
]
}
- 通过GsonFormat转Java类
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<Tab> 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;
}
}
- AppConfig.java
public class AppConfig {
private static BottomBar sBottomBar;
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();
}
}
网友评论