Jakarta ee 将JSON字符串转换为Java对象不会填充内部Arraylist中的值
我正在尝试使用GSON将JSON字符串转换为java对象 我的JSON格式是:Jakarta ee 将JSON字符串转换为Java对象不会填充内部Arraylist中的值,jakarta-ee,Jakarta Ee,我正在尝试使用GSON将JSON字符串转换为java对象 我的JSON格式是: form = { appName:'', specialChars:'', resKeyword:'', inputType:'', noOfFiles:'', validationDetails: [ { fee
form = {
appName:'',
specialChars:'',
resKeyword:'',
inputType:'',
noOfFiles:'',
validationDetails: [
{ feedFileName:'',
dataTypes:'',
validationRules:[
{ headerName:'',
mappingAtribute:'',
isMandatory:'',
isUnique:'',
dataType:'' }]
}]
};
我创建了3个bean类:FormData、ValidationDetails和ValidationRules
FormData.java:
public class FormData {
private String appName;
private String specialChars;
private String resKeyword;
private String inputType;
private String noOfFiles;
ArrayList<ValidationDetails> validationDetails= new ArrayList<ValidationDetails>();
//.... getters and setters
}
现在,当我尝试使用以下代码转换json字符串时:
Gson g = new Gson();
FormData form = g.fromJson(json, FormData.class);
ArrayList<ValidationDetails> validationDetailsArrayList = form.getValidationDetails();
// iterating over ArrayList
for(ValidationDetails a: validationDetailsArrayList){
ArrayList<ValidationRules> validationRulesArrayList = a.getValidationRule();
//
System.out.println(a.getValidationRule()); // here this ArrayList is getting null
}
Gson g=new Gson();
FormData form=g.fromJson(json,FormData.class);
ArrayList validationDetailsArrayList=form.getValidationDetails();
//在ArrayList上迭代
对于(ValidationDetails a:ValidationDetailsArray列表){
ArrayList validationRulesArrayList=a.getValidationRule();
//
System.out.println(a.getValidationRule());//此处此ArrayList变为null
}
因此,ArrayListvalidationRulesArrayList没有使用JSON字符串中的值填充。我在这方面花了很多时间。
我遗漏了什么吗?你能用“列表”代替ArrayListIt吗?我已经解决了。事实上,我犯了一个错误。在我的json格式中,内部数组是“validationRules”,但在POJO中,我定义了validationRule。这就是为什么之前没有正确映射的原因。无论如何,非常感谢utkusonmez。
public class ValidationRules {
private String headerName;
private String mappingAtribute;
private String isUnique;
private String isMandatory;
private String dataType;
//.... getters and setters
}
Gson g = new Gson();
FormData form = g.fromJson(json, FormData.class);
ArrayList<ValidationDetails> validationDetailsArrayList = form.getValidationDetails();
// iterating over ArrayList
for(ValidationDetails a: validationDetailsArrayList){
ArrayList<ValidationRules> validationRulesArrayList = a.getValidationRule();
//
System.out.println(a.getValidationRule()); // here this ArrayList is getting null
}