我应该收到JSON
这样的
{
"browse": [
{
"title": "Program Translations"
}
],
"errorno": "fe_200",
"message": "Your browse history"
}
但由于没有浏览信息,我得到它这样..
{"errorno":"fe_3946","message":"No browse history found.","browse":"NULL"}
这是完全正常的。
我写过这样的java类..
class BrowseHistoryJson {
public BrowseHistoryJson() {}
private String errorno;
private String message;
private List<Browse> browse;
// other attributes
public String getErrorNo() {
return errorno;
}
public String getMessage() {
return message;
}
public List<Browse> getResults() { return browse; }
public void setErrorNo(String errorno) {
this.errorno = errorno;
}
public void setMessage(String message) {
this.message = message;
}
public void setResults(List<Browse> browse) { this.browse = browse; }
public String toString() { return "Results[" + browse + "]";}
static class Browse {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String toString() { return "Result[title:" + title +"]"; }
}
}
现在当我执行语句时
BrowseHistoryJson 结果 = new Gson().fromJson(reader, BrowseHistoryJson.class);
我得到了例外
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 74 at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:795)
at com.google.gson.Gson.fromJson(Gson.java:734)
当我在数组中获取数据时,它工作得很好browse
。
如何添加null
处理,例如预先声明该值可能为空的某种方式?
我检查了 JSON 笔记并在互联网上搜索,但没有什么真正有用的。