2011-02-09 7 views
1

を解析: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; 
} 

}

私はこのように解析するか:私は私が間違ってやっているpointer.Whatヌルを取得し、リストにアクセスすると

Gson gson=new Gson(); 

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

+0

NPEはどこにありますか? –

+0

このようなリストにアクセスしようとするとエラーが発生します。リスト listacurs = listaCurs.listaCurs; \t \t \t \tイテレータイテレータ= null; \t \t iterator = listacurs.iterator(); \t \tしばらく(iterator.hasNext()) \t \t { \t \t} –

+0

listacursがnullの場合(またはそれはあなたがそれから得たイテレータの場合)を見つける –

答えて

1

Gsonは "Curs"というフィールドにリストを入れようとしていますが、CursListクラスの中にそのようなフィールドはありません。愚かな問題を発見

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

    ... 
} 
+0

私はこれをしなかったが、私は私の誤りを修正しませんでした。私はこれが問題になると思った。 –

0
Gson gson=new Gson(); 
Type cursType = new TypeToken<CursList>() { }.getType(); 
CursList listaCurs=gson.fromJson(Jsonresult,cursType); 
+0

いいえ。これはやっていませんでした。別の考えがありますか?たぶん私はよくそれにアクセスしません。私はこれが好きです:リスト listacurs = listaCurs.listaCurs; \t \t \t \tイテレータイテレータ= null; \t \t iterator = listacurs.iterator(); \t \t一方(iterator.hasNext()) \t \t { \t \t} –

+0

もう一つのアイデア:クラスCursListための空のコンストラクタを追加し、そこに新たなリストを初期化。公開CursList(){listaCurs =新しいリスト();} – Pasha

3

:あなたは次のようにCursListに注釈を追加する必要があります。 Jsonは日付形式を受け入れません。それが問題でした。助けてくれてありがとう。

+0

ああ、それを見ていない。このリンクは、必要に応じてカスタムパーサの作成に役立ちます。http://sites.google.com/site/gson/gson-type-adapters-for-common-classes-1 –

+0

GsonBuilderを使用する場合は、 setDateFormat()メソッドの1つで使用する日付形式。 –

関連する問題