Android解析json的方法

按道理解析json有挺多方法,我之前找到了一个神好用的分享一下。

工具:Android studio的gsonformat插件和两个固定工具类

配置

安装gsonformat

使用两个工具类

新建两个工具类
Json.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.List;
public abstract class Json {
private static Json json;
Json() {
}
public static Json get() {
if (json == null) {
json = new GsonImpl();
}
return json;
}
public abstract String toJson(Object src);
public abstract <T> T toObject(String json, Class<T> claxx);
public abstract <T> T toObject(byte[] bytes, Class<T> claxx);
public abstract <T> List<T> toList(String json, Class<T> claxx);
}

GsonImpl.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class GsonImpl extends Json {
private Gson gson = new Gson();
@Override
public String toJson(Object src) {
return gson.toJson(src);
}
@Override
public <T> T toObject(String json, Class<T> claxx) {
return gson.fromJson(json, claxx);
}
@Override
public <T> T toObject(byte[] bytes, Class<T> claxx) {
return gson.fromJson(new String(bytes), claxx);
}
@Override
public <T> List<T> toList(String json, Class<T> claxx) {
Type type = new TypeToken<ArrayList<T>>() {}.getType();
List<T> list = gson.fromJson(json, type);
return list;
}
}

使用

自定义个javaBean类(无需写任何内容)
复制你要解析的json
然后alt+insert弹出如下界面(或者在你的javaBean类代码区域右键选择Generate)

把要解析的json放到输入框点击ok即可(注意json格式要标准)

javaBean类会生成相应的javabean
最后只需一句代码

1
JavaBean bean =GsonImpl.get().toObject(json,JavaBean.class); //json为你要解析的json格式为String

最后只要用javabean的get方法取出来即可,例如

1
bean.getHeWeatherdataservice().get(0).getBasic().getCity();