我有一些json,其中有一系列类似于这样的条目(我已经将其简化为关注相关问题,这就是为什么它看起来有些多余):
{“名称”:“ISPC塞舌尔”,“公司”:{“名称”:“ISPC塞舌尔”,“id”:3427640}
然而,有时公司属性设置为空:
{“名称”:“京都宫子威斯汀”、“公司”:null}
我已经像这样定义了我的类(对于公共访问修饰符来说,很抱歉,当我得到这段代码:)时,将修改这些类):
class Entry {
public String name=;
public Company company;
public String toString() {
return name + ";" + company;
}
}
class Company {
public String name;
public int id;
public String toString() {
return "Company: " + name;
}
}在我的代码中,我尝试使用gson来反序列化包含在名为output的变量中的JSON:
while ((output = br.readLine()) != null) {
Gson gson = new Gson();
Reply reply = gson.fromJson(output, Reply.class);
Entry[] entries = reply.entries;
for (int i=0; i < entries.length; i++) {
System.out.print(entries[i]+ "\n") ;
}
}如JSON中的第一个示例所示,当填充了company元素时,这种方法工作得很好:
塞舌尔ISPC;公司: ISPC塞舌尔
但是,如果没有像第二个示例那样填充元素,我将得到以下输出:
Westin Miyako京都;空
我想要的是以下输出:
Westin Miyako京都;公司:空
发布于 2012-09-06 20:37:12
toString()表示Company由Company对象控制,因此如果Company对象为null,则无法获得所需的表示。唯一的方法是在您的Entry类‘toString()中有类似下面的内容
class Entry {
...
...
public String toString() {
return name + "; " + (company != null ? company : "Company: null");
}
}https://stackoverflow.com/questions/12306800
复制相似问题