【发布时间】:2015-10-17 20:38:24
【问题描述】:
我有一个 JSON 格式如下:-
{
students: [
{
name:"ABC",
deptt:"Physics",
year:"1st"
},
{
name:"XYZ",
deptt:"Mathematics",
year:"2nd"
}
]
}
我从使用 Volley 库调用的 Web 服务获得此响应。我将此响应存储在一个字符串中。
现在要解析这个提要,我正在尝试使用 GSON 库。我创建了一个名为 Student 的类,如下所示:-
public class Students{
@SerializedName("name")
private String name;
@SerializedName("deptt")
private String deptt;
@SerializedName("year")
private String year;
public Students(String name,String deptt,String year)
{
this.name = name;
this.deptt = deptt;
this.year = year;
}
//followed by getters and setter for each member
}
编辑
完成对网络服务的调用后,我调用另一个函数(如下所示解析提要)
public void parseTheFeed(String data)
{
Log.d("Data",data);
Gson gSon = new Gson();
Students studentData = gSon.fromJson(data,Students.class); //data == feed from webservice
Log.d("StudentData-Title", studentData.getName());
}
请注意,我在 Volley 的 onResponse 中调用方法“parseTheFeed(String data)”。
但我在使用 Log.d 语句时遇到 NullPointerException 错误。错误消息是“println 需要一条消息”
【问题讨论】:
-
显示您如何分配
data。问题就在那里。 -
@leeor :- 编辑了问题。在 volley 的 onResponse 内部,我调用了另一个名为
parseTheFeed(String data)的方法,并将onResponse的返回值(即结果)传递给parseTheFeed(String data) -
您作为参数传递的
data似乎是null,告诉我们您如何调用parseTheFeed方法 -
@dazito:- 我只是在
parseTheFeed(String data)中添加了一个日志语句来检查data...它不为空。 -
@JhilmilChatterjee 那么
data的值是多少?
标签: android json web-services gson android-volley