2017-02-04 14 views
-3

Я хочу спросить о разборе сложной структуры в Дооснащение. У меня есть JSON с моей REST:Parse nestes JSON with Restofit

{ 
    "persons" : [ { 
    "name" : "Ivan", 
    "age" : 24, 
    "address" : { 
     "country" : "Russia", 
     "city" : "Moscow" 
    }, 
    "birthDate" : "1992-02-07T00:00:00" 
    }, { 
    "name" : "Katarina", 
    "age" : 27, 
    "address" : { 
     "country" : "Russia", 
     "city" : "Petersburg" 
    }, 
    "birthDate" : "1989-08-15T00:00:00" 
    } 
], 
"amount": 2 
} 

И мне интересно, как я могу захватить это мой POJOs. У меня есть 3 класса:

public class Persons { 

    private Person[] persons; 
    private int amount; 
    ... getters, setters... 
} 

public class Person { 

    private String name; 
    private int age; 
    private Address address; 
    private Date birthDate; 
    ... 
} 

public class Address { 

    private String country; 
    private String city; 

    ... 
} 

Я пытался вызвать мой метод GET, возвращая вызов, но он не работает, только количество работает отлично, мой массив лиц является недействительным.

Как я могу разобрать это?

+0

Что такое ** Restofit **? Никогда не слышал об этом. Укажите любые ссылки – Andremoniy

+0

@Andremoniy Мой плохой, извините. –

+0

Какой тип конвертера вы используете? – Andremoniy

ответ

-1

Попробуйте использовать список лиц вместо массива:

public class Persons { 

    private List<Person> persons; 
    private int amount; 
    ... getters, setters... 
} 
+0

Я пробовал, также nulls и не знаю почему. –

+0

У вас есть геттер-сеттеры для класса Person? –

+0

У меня есть геттер-сеттеры для каждого объекта в моем классе, так что в этом случае у меня есть g/s для списка лиц и суммы, в persone у меня есть для каждого поля и т. Д. –

0
class Persons { 

    private Person[] persons; 

    public Person[] getPersons() { 
     return persons; 
    } 

    public void setPersons(Person[] persons) { 
     this.persons = persons; 
    } 

    public int getAmount() { 
     return amount; 
    } 

    public void setAmount(int amount) { 
     this.amount = amount; 
    } 

    private int amount; 
} 

class Person { 

    private String name; 

    public String getName() { 
     return name; 
    } 

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

    public int getAge() { 
     return age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 

    public Address getAddress() { 
     return address; 
    } 

    public void setAddress(Address address) { 
     this.address = address; 
    } 

    public Date getBirthDate() { 
     return birthDate; 
    } 

    public void setBirthDate(String birthDate) { 
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     try { 
      this.birthDate = format.parse(birthDate.replace("T"," ")); 
      System.out.println("brith"); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
    } 

    private int age; 
    private Address address; 
    private Date birthDate; 
} 

class Address { 

    private String country; 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    private String city; 
}