我有一些json,其中一系列条目看起来像这样(我已将其简化为相关问题,这就是为什么它看起来有点多余):
{" name":" ISPC Seychelles"," company":{" name":" ISPC 塞舌耳"" ID":3427640}}
但有时公司属性设置为null:
{" name":" Westin Miyako Kyoto"," company":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中的第一个示例中填充公司元素时,这可以正常工作:
ISPC Seychelles;公司:ISPC Seychelles
但是,如果未按第二个示例填充元素,则会得到以下输出:
京都威斯汀都酒店;空
我想要的是以下输出:
京都威斯汀都酒店;公司:null
答案 0 :(得分:0)
toString()
的{{1}}表示由Company
对象控制,因此如果Company
对象为空,则无法获得所需的表示。唯一的方法是在Company
班级Entry
中添加以下内容:
toString()