GSON разбор андроида - PullRequest
       13

GSON разбор андроида

1 голос
/ 09 февраля 2011

Это мой 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);

Когда я получаю доступ к списку, я получаю нулевой указатель. Что я делаю не так?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2011

Нашел глупую проблему. Json не принимает формат даты. Это была проблема. Спасибо всем за помощь.

1 голос
/ 09 февраля 2011

Gson пытается поместить список в поле с именем "Curs", но в классе CursList такого поля нет. Вы должны добавить аннотацию в CursList, например:

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

  ...
}
0 голосов
/ 09 февраля 2011
 Gson gson=new Gson();
 Type cursType = new TypeToken<CursList>() { }.getType();
 CursList listaCurs=gson.fromJson(Jsonresult,cursType);
...