正在尝试处理通过POST方法接收的JSON数组(改装2)



我很难解析通过POST方法检索到的JSON数组。我对此非常陌生,请原谅我的无知。

RequestInterface.java

public interface RequestInterface {
@POST("index.php/")
Call<Classes> queryclass(@Body ServerRequest request);
}

Classes.java

public class Classes {
@SerializedName("classname")
private String classname;
@SerializedName("subject")
private String subject;
@SerializedName("classday")
private String classday;
@SerializedName("timestart")
private String timestart;
@SerializedName("timeend")
private String timeend;
public Classes(String classname, String subject, String classday, String timestart, String timeend){
this.classname = classname;
this.subject = subject;
this.classday = classday;
this.timestart = timestart;
this.timeend = timeend;
}
public String getClassname() {
return classname;
}
}

服务器请求.java

public class ServerRequest {
private String queryclass;
private User user;
public void setQueryClass(String queryclass) { this.queryclass = queryclass; }
public void setUser(User user) {
this.user = user;
}
}

活动(改装(

User user = new User();
user.setEmail(email);
ServerRequest request = new ServerRequest();
request.setQueryClass(Constants.QUERYCLASSES_OPERATION);
request.setUser(user);
Call<Classes> response = requestInterface.queryclass(request);
response.enqueue(new Callback<Classes>() {
@Override
public void onResponse(Call<Classes> call, Response<Classes> response) {
if(!response.isSuccessful()){
tvData.setText(response.code());
return;
}
Classes resp = response.body();
String content = "";
content += "code: " + response.code() + "n";
content += "classname: " + resp.getClassname() + "n";
tvData.setText(content);
}
@Override
public void onFailure(Call<Classes> call, Throwable t) {
Toast.makeText(getApplicationContext(),t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
Log.d("TAG",t.getLocalizedMessage());
}
});

我试图显示的JSON数组(Postman(

[
{
"classname": "PHYS1201",
"subject": "PHYS12",
"classday": "THU",
"timestart": "18:00:00",
"timeend": "20:00:00"
},
{
"classname": "CHEM1202",
"subject": "CHEM12",
"classday": "FRI",
"timestart": "12:00:00",
"timeend": "14:00:00"
}
]

它只是在应用程序运行时显示"classname:null"。很抱歉发了这么长又令人困惑的帖子,如有任何帮助,我们将不胜感激。


澄清:POST请求正在发送一封电子邮件(id(,该电子邮件返回该特定id的类数组。这在poster中有效,给了我上面显示的数组,但由于某些原因,该响应未被改装识别为数组。我尝试过使用List,但它似乎将响应识别为对象,而不是数组。

如果要获取JSON数组值,请使用列表。

像这样:

public interface RequestInterface {
@POST("index.php/")
Call<List<Classes>> queryclass(@Body ServerRequest request);
}

最新更新