我对api的响应如下:
{
"0": "_serialize",
"1": [
"login"
],
"users": {
"token": "aaaaa",
"message": "login successful."
}
}
如何使用Gson在android中对此进行解析?
答案 0 :(得分:1)
首先使用this one之类的工具在您的 json 中创建 model 类。只需复制json并获取对象即可。
假设您将类称为Model
然后使用此code
从json中获取对象。
String json = "that-json";
Model m = gson.fromJson(json, Model.class);
有关Gson's guides的更多信息。
答案 1 :(得分:1)
从响应中生成Model类
<div class="container">
<div class="item item-1">
1
</div>
<div class="item item-2">
2
</div>
<div class="item item-3">
3
</div>
<div class="item item-4">
4
</div>
<div class="item item-5">
5
</div>
<div class="item item-6">
6
</div>
<div class="item item-7">
7
</div>
<div class="item item-8">
8
</div>
<div class="item item-9">
9
</div>
<div class="item item-10">
10
</div>
<div class="item item-11">
11
</div>
<div class="item item-12">
12
</div>
</div>
答案 2 :(得分:1)
使用gson并将您的响应映射到Java Model类。
这将是您的模型课->
User.java模型类。
import java.io.Serializable;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import org.apache.commons.lang.builder.ToStringBuilder;
public class Users implements Serializable
{
@SerializedName("token")
@Expose
private String token;
@SerializedName("message")
@Expose
private String message;
private final static long serialVersionUID = 3387741697269012981L;
/**
* No args constructor for use in serialization
*
*/
public Users() {
}
/**
*
* @param message
* @param token
*/
public Users(String token, String message) {
super();
this.token = token;
this.message = message;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Users withToken(String token) {
this.token = token;
return this;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Users withMessage(String message) {
this.message = message;
return this;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("token", token).append("message", message).toString();
}
}
这是您的根/父类,从那里开始解析。
import java.io.Serializable;
import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import org.apache.commons.lang.builder.ToStringBuilder;
public class Root implements Serializable
{
@SerializedName("0")
@Expose
private String _0;
@SerializedName("1")
@Expose
private List<String> _1 = null;
@SerializedName("users")
@Expose
private Users users;
private final static long serialVersionUID = 5880229946098431789L;
/**
* No args constructor for use in serialization
*
*/
public Example() {
}
/**
*
* @param users
* @param _0
* @param _1
*/
public Example(String _0, List<String> _1, Users users) {
super();
this._0 = _0;
this._1 = _1;
this.users = users;
}
public String get0() {
return _0;
}
public void set0(String _0) {
this._0 = _0;
}
public Example with0(String _0) {
this._0 = _0;
return this;
}
public List<String> get1() {
return _1;
}
public void set1(List<String> _1) {
this._1 = _1;
}
public Example with1(List<String> _1) {
this._1 = _1;
return this;
}
public Users getUsers() {
return users;
}
public void setUsers(Users users) {
this.users = users;
}
public Example withUsers(Users users) {
this.users = users;
return this;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("_0", _0).append("_1", _1).append("users", users).toString();
}
}
现在在代码中,您将从此处开始解析的根/父类接收Json map json。
Root root = new Gson().fromJson(/*put your json response variable here*/, Root.class);
并使用根对象通过公共get方法获取/设置任何数据。
答案 3 :(得分:1)