Проблема с простыми XML-аннотациями - PullRequest
0 голосов
/ 10 мая 2018

Я использую Retrofit для анализа ответа от сервера, и я не могу увидеть, какие аннотации я должен использовать для решения этой проблемы. Я даже упомянул это . Какой должен быть правильный путь.

Ниже приведен мой журнал onFailure от Retrofit.

faultjava.lang.RuntimeException: org.simpleframework.xml.core.ElementException: элемент «route» не соответствует в классе drish.com.dsfaallstars.updatefromserver.model.Routes в строке -1 нуль

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;
    }
  }

1 Ответ

0 голосов
/ 11 мая 2018
@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 + '\'' +
        '}';
  }
}
...