Модификация с SimpleXmlConverter возвращает ноль - PullRequest
0 голосов
/ 10 октября 2018

Я использую RetroFit с SimpleXmlConverter.Проблема в том, что каждый раз, когда я выполняюсь, он возвращает нулевой ответ.

XML

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<Cities>

<City Id="USCA0987" Name="San Francisco"  >

</City>

</Cities>

Классы POJO: -

    public class Weather
    {

        private Cities Cities;

        public Cities getCities ()
        {
            return Cities;
        }

        public void setCities (Cities Cities)
        {
            this.Cities = Cities;
        }

        @Override
        public String toString()
        {
            return "ClassPojo [Cities = "+Cities+"]";
        }
    }

    public class Cities {

    private City City;

    public City getCity ()
    {
        return City;
    }

    public void setCity (City City)
    {
        this.City = City;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [City = "+City+"]";
    }

}


 public class City {

     private String Name;

     private String Id;

     public String getName ()
     {
         return Name;
     }

     public void setName (String Name)
     {
         this.Name = Name;
     }

     public String getId ()
     {
         return Id;
     }

     public void setId (String Id)
     {
         this.Id = Id;
     }

     @Override
     public String toString()
     {
         return "ClassPojo [Name = "+Name+", Id = "+Id+"]";
     }
}

Я создал модифицированный клиент, используя следующий код

retrofit = new Retrofit.Builder()
                .baseUrl("https://s3-us-west-2.amazonaws.com/")
                .addConverterFactory(
                        SimpleXmlConverterFactory.createNonStrict())
                .client(client)
                .build();

В ответ я получаю нулевые города.Пожалуйста, посмотрите.

1 Ответ

0 голосов
/ 10 октября 2018

Добавьте эти изменения в ваш класс POJO.

@Root
public class Weather
  {
    @Element
    private Cities Cities;

    public Cities getCities ()
    {
        return Cities;
    }

    public void setCities (Cities Cities)
    {
        this.Cities = Cities;
    }


    @Override
    public String toString()
    {
        return "ClassPojo [Cities = "+Cities+"]";
    }
}


public class Cities {

@Element
private City City;

public City getCity ()
{
    return City;
}

public void setCity (City City)
{
    this.City = City;
}

@Override
public String toString()
{
    return "ClassPojo [City = "+City+"]";
}

}


public class City {

 @Attribute
 private String Name;

 @Attribute
 private String Id;

 public String getName ()
 {
     return Name;
 }

 public void setName (String Name)
 {
     this.Name = Name;
 }

 public String getId ()
 {
     return Id;
 }

 public void setId (String Id)
 {
     this.Id = Id;
 }

 @Override
 public String toString()
 {
     return "ClassPojo [Name = "+Name+", Id = "+Id+"]";
 }
}

Вы можете найти больше на официальном сайте

...