android - 用于对象数组的 Android Moshi JsonAdapter
问题描述
我有一组 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
并添加这个
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 );
推荐阅读
- python - Python字符串格式中的“f”和“F”有区别吗?
- amazon-web-services - 在 AWS EMR 中运行 spark sql 查询
- amazon-web-services - 气流存储日志到 S3 的良好做法?
- ios - 如何将触摸点转换为 CG 矢量
- mongodb - 在 VNET 下通过 SSH 隧道连接到 Azure Container 实例中的 MongoDB
- laravel - laravel 5.8 中的嵌套替代验证 required_without
- amazon-elb - EKS + NLB:`service.beta.kubernetes.io/aws-load-balancer-internal: true` 不适用于`service.beta.kubernetes.io/aws-load-balancer-type: nlb`
- python-3.x - Tkcalendar DateEntry - 允许小部件将无选择返回为空白
- sql-server - 在 Calalog 中执行 SSIS 包后如何读取变量值?
- python - 如何在 plotly 中覆盖同一图中的两个图(在 plotly 中创建帕累托图)?