使用GSON解析JSON数据
作者:互联网
implementation 'com.google.code.gson:gson:2.7'
GsonFormat
Gson是采用对象映射的方式,所以我们要为JSON数据创建一个Java对象来与之对应。
我们可以使用GsonFormat插件,迅速的将JSON数据转换成Java对象,使用方法如下:
1、安装好GsonFormat插件
2、新建一个类,在类里的空白处按Alt+S键,并将要转换的JSON数据复制进去,界面如下所示:
注意:自动生成的时候,内部类可能会是静态的,手动把内部类的static去掉。
@SerializedName注解
由于JSON中的一些字段可能不太适合直接作为Java字段来命名,因此这里使用了@SerializedName注解的方式来让JSON字段和Java字段之间建立映射关系。
此处的Test类为JSON数据的一个映射类,而USER和PWD为JSON数据中的两个字段,很明显,这两个字段的名字不适合做变量名,所以使用@SerializedName注解的方式来让USER和user建立映射关系,PWD和password建立映射关系。
Gson的使用
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
解析JSON数组
Gson gson = new Gson();
List<User> userList = gson.fromJson(jsonData, new TypeToken<User>(){}.getType());
要解析的JSON数据:
{
"user": "user1",
"pwd": "123456",
"jsonArray": [
{"user": "user1",
"pwd": "123456"},
{"user": "user2",
"pwd": "123456"}
],
"result": "成功"
}
映射的Java类:
public class Data {
private String user;
private String pwd;
private String result;
private List<JsonArrayBean> jsonArray;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public List<JsonArrayBean> getJsonArray() {
return jsonArray;
}
public void setJsonArray(List<JsonArrayBean> jsonArray) {
this.jsonArray = jsonArray;
}
public class JsonArrayBean {
private String user;
private String pwd;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
}
private void parseJSONData(String jsonData) {
Gson gson = new Gson();
Data data = gson.fromJson(jsonData, Data.class);
// data就是整个JSON数据映射的一个对象
String result = data.getResult(); // 取result字段的值
String pwd = data.getPwd(); // 取pwd字段的值
String user = data.getUser(); // 取user字段的值
// 因为jsonArray字段对应的是一个JSON数组,所以要用一个List来对应
List<Data.JsonArrayBean> list = data.getJsonArray();
//取值
for (int i = 0; i < list.size(); i++) {
Data.JsonArrayBean jsonArrayBean = list.get(i);
String user1 = jsonArrayBean.getUser();
String pwd1 = jsonArrayBean.getPwd();
}
}
标签:String,gson,pwd,public,JSON,user,解析,GSON 来源: https://blog.csdn.net/weixin_38107457/article/details/121527646