java - 简单的 XML 注释问题
问题描述
我正在使用 Retrofit 来解析来自服务器的响应,但我看不到我应该使用哪些注释来解决这个问题。我什至提到了这个。正确的方法应该是什么。
以下是我来自 Retrofit 的 onFailure 日志。
failurejava.lang.RuntimeException:org.simpleframework.xml.core.ElementException:元素'route'在第-1行的类 drish.com.dsfaallstars.updatefromserver.model.Routes 中没有匹配项 null
我收到的 XML:
<routes>
<route>
<id>20</id>
<name>Barnala</name>
<update>false</update>
</route>
<route>
<id>15</id>
<name>Kapurthala</name>
<update>false</update>
</route>
<route>
<id>14</id>
<name>Nakodar</name>
<update>false</update>
</route>
</routes>
public class Routes {
@Root
@ElementList
private List<Route> routes;
}
@Root(name = "route")
public class Route{
@Element(required = false)
private String id;
@Element(required = false)
private String update;
@Element(required = false)
private String name;
public String getId ()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public String getUpdate ()
{
return update;
}
public void setUpdate (String update)
{
this.update = update;
}
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
}
解决方案
@Element(name = "routes")
@Order(elements = "route")
public class Routes {
@ElementList(entry = "route",inline = true)
private List<RoutePojo> route;
@Override
public String toString() {
return "Routes{" +
"route=" + route +
'}';
}
}
public class RoutePojo{
@Element(required = false)
private String id;
@Element(required = false)
private String update;
@Element(required = false)
private String name;
public String getId ()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public String getUpdate ()
{
return update;
}
public void setUpdate (String update)
{
this.update = update;
}
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
@Override
public String toString() {
return "RoutePojo{" +
"id='" + id + '\'' +
", update='" + update + '\'' +
", name='" + name + '\'' +
'}';
}
}
推荐阅读
- javascript - 以后端期望的特定格式重构 JS 数组
- c# - UWP MediaPlayerElement 流超时
- grails - 以编程方式编辑 resources.groovy 文件
- jquery - 选择该选项时仅更改一个选项的颜色
- php - 函数 Hook add_post_meta ACF Post 对象
- c++ - vsperfcmd.exe 计算代码覆盖率不准确
- android - 如何授予android仪器测试权限?
- c++ - 从 C++ 中的文本文件中读取
- angular - 返回一个模拟http响应而不是angular4中的服务器调用
- angular - 如何使 routerLink 在活动时转到不同的链接?