GSON анализира android

Това е моят JSON:

{
    "Curs": [
        {
            "ID": "AED",
            "Name": "Dirhamul Emiratelor Arabe",
            "Curs": "0.8503",
            "Multiplier": "1",
            "Data": "2011-02-09"
        },
        {
            "ID": "AUD",
            "Name": "Dolarul australian",
            "Curs": "3.1572",
            "Multiplier": "1",
            "Data": "2011-02-09"
        }
    ]
}

Това е моят клас:

public class Curs {

@SerializedName("ID")
public String id;

@SerializedName("Name")
public String nume;

@SerializedName("Curs")
public  double crs;

@SerializedName("Multiplier")
public  int mult;

@SerializedName("Data")
public  Date data;

public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getNume() {
    return nume;
}
public void setNume(String nume) {
    this.nume= nume;
}
public void setCrs(double crs) {
    this.crs=crs;
}
public double getCrs(){
    return crs;
}
public void setMult(int mult) {
    this.mult=mult;
}
public int getMult(){
    return mult;
}
public void setData(Date data) {
    this.data=data;
}
public Date getData(){
    return data;
}

}

И това е класът, който съдържа моя списък:

public class CursList {

public static List<Curs> listaCurs;

public void setCursList(List <Curs> listaCurs) {
    this.listaCurs = listaCurs;
}

public List<Curs> getCursList() {
    return listaCurs;
}

}

Правя синтактичния анализ така:

Gson gson=new Gson();

    CursList listaCurs=gson.fromJson(Jsonresult,CursList.class);

Когато вляза в списъка, получавам нулев указател. Какво правя погрешно?


person silaghi flaviu    schedule 09.02.2011    source източник
comment
грешката възниква, когато се опитам да осъществя достъп до списъка по следния начин: List‹Curs› listacurs=listaCurs.listaCurs; Итератор ‹Curs› iterator=null; итератор=listacurs.iterator(); докато (iterator.hasNext()) {}   -  person silaghi flaviu    schedule 09.02.2011
comment
намерете дали listacurs е null (или дали това е итераторът, който сте получили от него)   -  person Pedro Loureiro    schedule 09.02.2011


Отговори (3)


Открих глупавия проблем. Json не приема формат на дата. Това беше проблемът. Благодаря на всички за помощта.

person silaghi flaviu    schedule 09.02.2011
comment
А, не го видях. Тази връзка може да ви помогне да напишете персонализиран анализатор, ако имате нужда от него: sites.google.com/site/gson/ - person Kevin Dolan; 09.02.2011
comment
Когато използвате GsonBuilder, можете да посочите формата на датата, който да използвате с един от методите setDateFormat(). - person Programmer Bruce; 15.06.2011

Gson се опитва да постави списъка в поле, наречено „Curs“, но няма такова поле в класа CursList. Трябва да добавите анотация в CursList като:

public class CursList {
  @SerializedName("Curs")
  public static List<Curs> listaCurs;

  ...
}
person Kevin Dolan    schedule 09.02.2011
comment
Направих това, но не поправих грешката си. Надявах се това да е проблемът. - person silaghi flaviu; 09.02.2011

person    schedule
comment
Не. Това не свърши работа. Имате ли друга идея. Може би нямам достъп до него добре. Харесва ми това: List‹Curs› listacurs=listaCurs.listaCurs; Итератор ‹Curs› iterator=null; итератор=listacurs.iterator(); докато (iterator.hasNext()) {} - person silaghi flaviu; 09.02.2011
comment
Друга идея: добавете празен конструктор за клас CursList и инициирайте там нов списък. public CursList(){listaCurs = нов списък‹Curs›();} - person Pasha; 09.02.2011