GSON анализирует андроид

Это мой 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; итератор = списоккурсов.итератор(); в то время как (iterator.hasNext()) {}   -  person silaghi flaviu    schedule 09.02.2011
comment
найти, является ли listacurs нулевым (или это итератор, который вы получили от него)   -  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; итератор = списоккурсов.итератор(); в то время как (iterator.hasNext()) {} - person silaghi flaviu; 09.02.2011
comment
Еще одна идея: добавить пустой конструктор для класса CursList и создать там новый список. общедоступный CursList(){listaCurs = новый список‹Curs›();} - person Pasha; 09.02.2011