【问题标题】:Simple XML Annotations Issue简单的 XML 注释问题
【发布时间】:2018-05-10 13:41:14
【问题描述】:

我正在使用 Retrofit 来解析来自服务器的响应,但我看不到我应该使用哪些注释来解决这个问题。我什至提到了this。 正确的方法应该是什么。

以下是我从 Retrofit 获得的 onFailure 日志。

failurejava.lang.RuntimeException: org.simpleframework.xml.core.ElementException: 元素“路由”在第 -1 行的 drish.com.dsfaallstars.updatefromserver.model.Routes 类中没有匹配项 空

我收到的 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;
    }
  }

【问题讨论】:

    标签: java android annotations retrofit2 simple-framework


    【解决方案1】:
    @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 + '\'' +
            '}';
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多