Android 对象数组的 Moshi JsonAdapter
Android Moshi JsonAdapter for array's of objects
我有一组 Servlet 可以传回对象数组,例如
text=[{"sPK":1,"sName":"foobar","cFlag":0},
{"sPK":5,"sName":"barfoo","cFlag":1}]
在 java 应用程序中,我使用 org.fasterXML.Jackson 读取 json 并读取这种性质的数组,我使用
ObjectMapper m = new ObjectMappar();
SClass[] ss = m.readValue(response.getResponse(), SClass[].class);
如果我使用 Moshi 尝试这样的事情
JsonAdapter sJsonAdapter = moshi.adapter(sClass[].class);
应用程序出错,有没有办法使用 Moshi 来解决这个问题?
如果您想使用 Moshi
创建一个名为 ServletsResponse
的 class 并添加这个
public class ServletsResponse{
@Json(name = "sPK")
private Integer sPK;
@Json(name = "sName")
private String sName;
@Json(name = "cFlag")
private Integer cFlag;
public Integer getSPK() {
return sPK;
}
public void setSPK(Integer sPK) {
this.sPK = sPK;
}
public String getSName() {
return sName;
}
public void setSName(String sName) {
this.sName = sName;
}
public Integer getCFlag() {
return cFlag;
}
public void setCFlag(Integer cFlag) {
this.cFlag = cFlag;
}
}
然后你就可以解析它了:
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<ServletsResponse> jsonAdapter = moshi.adapter(ServletsResponse.class);
ServletsResponse servletResponse = jsonAdapter.fromJson(json);
System.out.println(servletResponse );
我有一组 Servlet 可以传回对象数组,例如
text=[{"sPK":1,"sName":"foobar","cFlag":0},
{"sPK":5,"sName":"barfoo","cFlag":1}]
在 java 应用程序中,我使用 org.fasterXML.Jackson 读取 json 并读取这种性质的数组,我使用
ObjectMapper m = new ObjectMappar();
SClass[] ss = m.readValue(response.getResponse(), SClass[].class);
如果我使用 Moshi 尝试这样的事情
JsonAdapter sJsonAdapter = moshi.adapter(sClass[].class);
应用程序出错,有没有办法使用 Moshi 来解决这个问题?
如果您想使用 Moshi
创建一个名为 ServletsResponse
的 class 并添加这个
public class ServletsResponse{
@Json(name = "sPK")
private Integer sPK;
@Json(name = "sName")
private String sName;
@Json(name = "cFlag")
private Integer cFlag;
public Integer getSPK() {
return sPK;
}
public void setSPK(Integer sPK) {
this.sPK = sPK;
}
public String getSName() {
return sName;
}
public void setSName(String sName) {
this.sName = sName;
}
public Integer getCFlag() {
return cFlag;
}
public void setCFlag(Integer cFlag) {
this.cFlag = cFlag;
}
}
然后你就可以解析它了:
Moshi moshi = new Moshi.Builder().build();
JsonAdapter<ServletsResponse> jsonAdapter = moshi.adapter(ServletsResponse.class);
ServletsResponse servletResponse = jsonAdapter.fromJson(json);
System.out.println(servletResponse );