初めて GSON を使用しています。httpGet リクエストを呼び出すと、次のように Json オブジェクト文字列の結果が返されます。
{"ContentEncoding":null,"ContentType":null,"Data":[{"Id":3,"Name":"Alabama"},
{"Id":4,"Name":"Alaska"},{"Id":5,"Name":"Arizona"},{"Id":6,"Name":"Arkansas"}]}
私が欲しいのは Data オブジェクトだけなので、私の CustomModel クラスは次のようになります:
public class CustomModel {
@SerializedName("Id")
private int Id;
@SerializedName("Name")
private string Name;
public int getId() {
return this.Id;
}
public void setId(int id) {
this.Id = id;
}
public string getName() {
return this.Name;
}
public void setName(string Name) {
this.Name = Name;
}
}
GSON を使用して、次のように解析しようとします。
JsonArray Jarray = (JsonArray) parser.parse(results).getAsJsonObject().get("Data");
for(JsonElement obj : Jarray )
{
CustomModel cse = gson.fromJson(obj , CustomModel.class);
// list.add(cse); //add the values to global List object
}
しかし、これは for ループ内で "Expected Begin_Object but was string" というエラーをスローします。私はグーグルからこれを理解しようとしていますが、答えは役に立ちません