我正试图将我的列表写到抽象模型中的jtable,然后它返回给我这个错误。在我看来,这可能是由列表格式引起的?名称和金额在错误的地方。这是我的完整错误消息:线程“awt-eventqueue-0”java.lang.ClassCastException:类com.google.gson.internal.LinkedTreemap不能强制转换为类model.medicine(com.google.gson.internal.LinkedTreemap和model.medicine在加载程序'app'的未命名模块中)
有一个代号:这是我的医学课
public class Medicine {
private String name;
private String amount;
public Medicine( String amount, String name){
this.name = name;
this.amount = amount;
}
public String getName() {return name;}
public void setName(String name){this.name = name;}
public String getAmount(){return amount;}
public void setAmount(String amount){this.amount = amount;}
}
这是我的转换代码:
public List<Medicine> FromJsonToArray() throws IOException {
String medicineJson = initArray("Medicines.json").toString();
Gson gson = new Gson();
List<Medicine> medicineArray = gson.fromJson(medicineJson, List.class);
return medicineArray;
}
转换后我的列表如下所示:
[{amount=123,name=Ibuprofen},{amount=333,name=Ketonal},...]
我的JSON:
[
{
"amount": "123",
"name": "Ibuprofen"
},
{
"amount": "333",
"name": "Ketonal"
}
]
最后是带有错误的表模型类:
public class MedicineTableModel extends AbstractTableModel {
private List<Medicine> medicines;
private String[] columns;
public MedicineTableModel(List<Medicine> aMedicineList){
super();
medicines = aMedicineList;
columns = new String[]{"Name", "Amount"};
}
@Override
public int getRowCount() {
return medicines.size();
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex)
{
if (columnIndex<medicines.size())
{
Medicine c= medicines.get(rowIndex); <---- there is a problem :O
if(rowIndex == 0) {
return(c.getName());
}
}
return null;
}
public String getColumnName(int col) {
return columns[col] ;
}
}
public List<Medicine> FromJsonToArray() throws IOException {
String medicineJson = initArray("Medicines.json").toString();
Gson gson = new Gson();
Type medicineListType = new TypeToken<List<Medicine>>() {}.getType();
List<Medicine> medicineArray = gson.fromJson(medicineJson, medicineListType);
return medicineArray;
}
应该能成功。
基本上,告诉gson反序列化到特定类的列表是一种变通方法。
这是必需的,因为泛型在运行时丢失,并且您的json被反序列化为list
而不是list
。
所以,我试图建立一个报告。某些特定类型的用户的详细信息需要写在excel文件中。在到达endpoint时,它返回500,并使用以下StackTrace。 我希望将此模型用户配置文件的一些细节写入excel表中,并使其可供下载。你觉得我怎么解决这个问题。主要的错误来自这几行,特别是粗体字的那行
问题内容: 在获取json数据时出现错误: JSONArray无法转换为JSONObject JSON生成代码: 在阅读上述json时遇到错误代码有什么问题吗? 问题答案: 更改 至 作为数据值的是JsonArray而不是JSONObject。 为了获取单个ID和字段名称,您应该遍历此JSONArray,如下所示:
在godbolt.org中编译代码时,我遇到以下错误: 看起来该错误是在使用std::thread创建线程时出现的。该守则的简化版本为:
我是JSON的新手,但我尝试使用所有的答案,但都不起作用。请帮帮我,我做错了什么。 } 我的JSON用于解析。
问题内容: 我想填写一个selectonemenu,但总是出现此错误: 这是代码: JSF: 我发现我应该写一个转换器,但是我不知道为什么?因为我已经看到了一些没有转换器的示例工作? 谢谢 问题答案: 在您的网页中尝试此代码 不要将其值属性用于不同目的