我从.NET WS获得JSON响应(项目列表),因此我想在我的Android应用程序中转换为List。但是当使用GSON库时,我得到以下异常:
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException: 预期BEGIN_ARRAY但在第1行第2列路径$
处是BEGIN_OBJECT
JSON回复:
{
"d": [
{
"Id":1,
"Name":"Name1",
"Email":"name1@gmail.com"
},
{
"Id":2,
"Name":"Name2",
"Email":"name2@gmail.com"
}
]
}
Android GSON代码:
Gson gson = new Gson();
Type listType = new TypeToken<List<User>>(){}.getType();
List<User> users = (List<User>) gson.fromJson(response, listType);
据我了解,JSON正在返回一个项目列表,我也试图解析一个项目列表,所以我不明白这个问题。
提前致谢
答案 0 :(得分:3)
您的JSON是{ ... }
,因此不是列表,但d
是一个列表。
这是完全未经测试的,但您应该这样做:
class Foo {
List<User> d;
}
Gson gson = new Gson();
Foo foo = gson.fromJson(response, Foo.class);
List<User> users = foo.d;