java - 为什么我无法显示我的列表元素?- 爪哇
问题描述
我的清单有问题。我的目标是从我的 json 列表中创建一个 JTree。为此,我将我的 json 转换为我要列出我的患者的位置。但我什至不能显示我的病人的名字。也许我的代码让我的问题更清楚。我将不胜感激任何建议!
我的病人班:
public class Patient {
private String name;
private String surname;
private String pesel;
public Patient(String name, String surname, String pesel) {
this.name = name;
this.surname = surname;
this.pesel = pesel;
}
public String getName(){return name;}
public void setName(String name){this.name = name;}
public String getSurname(){return surname;}
public void setSurname(String surname){this.surname = surname;}
public String getPesel(){return pesel;}
public void setPesel(String pesel){this.pesel = pesel;}
}
我的 PatientList :(这个方法有效,当我使用它将医学 json 转换为药物列表时我没有问题)
public List<Patient> FromJsonToArray1() throws IOException {
String patientsJson = initArray("Patients.json").toString();
Gson gson = new Gson();
java.lang.reflect.Type patientsListType = new TypeToken<ArrayList<Patient>>() {}.getType();
List<Patient> patientArray = gson.fromJson(patientsJson, patientsListType);
return patientArray;
}
这是我显示患者姓名的功能。
public void jtreecreator() throws IOException {
List<Medicine> medicineList = FromJsonToArray();
List<Patient> patientList = FromJsonToArray1();
medicinesDataMethods medicinesdatamethods = new medicinesDataMethods();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Patients");
Patient c = patientList.get(0);
Medicine d = medicineList.get(0);
DefaultTreeModel treeModel = new DefaultTreeModel(root);
JTree tree = new JTree(treeModel);
JScrollPane scrollPane = new JScrollPane(tree);
JOptionPane.showMessageDialog(null,c.getSurname());
JOptionPane.showMessageDialog(null, d.getName());
}
调用此函数后,它显示 d.getName(),但 c.getSurname() 不起作用。
它是我存储患者的 json:
[
{
"Pesel": "1111",
"Surname": "Walker",
"Name": "Johny "
},
{
"Pesel": "11111",
"Surname": "Walker1",
"Name": "Johny1 "
}
]
调试后,我发现我在 FromJsonToArray1() 中创建的列表有患者对象,但姓名、姓氏和 pesel 的值为空。:C
解决方案
问题是类和 json 中的属性名称不匹配。你可以修改Patient
类
class Patient {
@SerializedName("Name")
private String name;
@SerializedName("Surname")
private String surname;
@SerializedName("Pesel")
private String pesel;
// getters and setters, constructor, etc. here
}
推荐阅读
- android - 在 Flutter 上显示空白屏幕的 Agora 本地视图
- docker - “docker context ls”或“docker context use default”导致“上下文需要凭据作为环境变量传递”
- python - 无法解释列表行为
- driver - 为什么内核模式驱动程序不能分配和使用内存而不导致潜在的不稳定?
- javascript - 识别字符串中所有出现的变量字符串 {"text"},其中 text 可以是任何字符串
- reactjs - 为什么从 16.x 升级到 React 17.x 会破坏我的功能?
- azure - 有没有办法使用 terraform 配置 Azure 备份警报?
- mysql - 在 MySQL 中的 WHERE 子句上使用 SOUNDEX 函数
- cloudflare-workers - Cloudflare 工作人员 appcheck 或有效的应用请求
- rust - 没有为自定义 trait 实现 trait `std::marker::Sized`