详细报错
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "trainingClassStatus"
典型的 Jackson JSON 反序列化问题,具体是 UnrecognizedPropertyException。以下是问题的详细分析和解决方法:
问题分析
错误类型:UnrecognizedPropertyException
JSON 数据中包含了一个字段 trainingClassStatus,Jackson 在尝试将 JSON 数据反序列化为 Java 对象时,遇到了一个未知的字段 trainingClassStatus,而这个字段在目标类
解决方法
以下是几种可能的解决方法,你可以根据实际情况选择合适的方式:
- 添加缺失的字段
如果 trainingClassStatus 是一个有效的字段,应该在 TrainingClass 类中添加这个字段:
public class TrainingClass {
// 其他字段
private String trainingClassStatus; // 添加缺失的字段
// getter 和 setter 方法
public String getTrainingClassStatus() {
return trainingClassStatus;
}
public void setTrainingClassStatus(String trainingClassStatus) {
this.trainingClassStatus = trainingClassStatus;
}
}
2.忽略未知字段
如果 trainingClassStatus 是一个不必要的字段,或者你不想在 Java 类中处理它,可以在类上添加 @JsonIgnoreProperties 注解来忽略未知字段:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class TrainingClass {
// 现有的字段和方法
}
3.序列化时忽略此字段
/**
* 获取班级状态
*
* @return
*/
@JsonIgnore
public Integer getTrainingClassStatus() {
// 状态
RunStatusEnum statusEnum = RunStatusEnum.getEnum(startTime, endTime);
if (Objects.nonNull(statusEnum)) {
return statusEnum.getStatusId();
}
return RunStatusEnum.HAS_ENDED.getStatusId();
}
浙公网安备 33010602011771号