我正在尝试将请求正文从 postman 映射到 Spring Boot 实体,
{
"college":"0",
"collegeName":"",
"email":"a.r@g.com",
"firstName":"Mike",
"gradEndYear":"2017",
"gradStartYear":"2014",
"lastName":"worrell",
"marks":[
{"sem1":60},
{"sem2":70},
{"sem3":80},
{"sem4":60},
{"sem5":60},
{"sem6":60},
{"sem7":70},
{"sem8":60}
]
}
问题是我尝试将标记数组映射到 map ,但出现以下错误
message": "JSON parse error: Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token\n at [Source: java.io.PushbackInputStream@2b05836e; line: 9, column: 9] (through reference chain: icms.external.springboot.candidateRegistration.model.CandidateRegistrationForm[\"marks\"])
Java 模型
@Component
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class CandidateRegistrationForm
{
private String firstName;
private String middleName;
private String lastName;
private String email;
private String college;
private String collegeName;
private String gradStartYear;
private String gradEndYear;
private Map<String, Integer> marks = new HashMap<>();
//getters and setters
}
最佳答案
要么更改 json,以便将其映射到 java map 数据结构,在这种情况下,json 将类似于
“标记”:
{
“SEM1”:60,
“SEM2”:70,
}
或者使用数组列表代替 map 。
关于java - 如何将json数组映射到java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692992/