
这个报错是JSON 反序列化时,把字符串 "1" 转成 Boolean 类型失败(Jackson 只认 "true"/"false"),问题出在StoreSeckillMangerRequest的status字段。
解决方案:
1.前端修改(推荐)
检查前端 “状态” 开关的传值:
- 开关开启时,前端应该传
true(而非 "1"); - 开关关闭时,传
false(而非 "0")。
2. 后端修改(如果前端不好改)
给StoreSeckillMangerRequest的status字段加 Jackson 注解,兼容 "1"/"0" 转 Boolean:
java
运行
import com.fasterxml.jackson.annotation.JsonFormat;
public class StoreSeckillMangerRequest {
// 加这个注解,让Jackson把"1"转true、"0"转false
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "1|0")
private Boolean status;
// 其他字段...
}
或者用自定义反序列化器:
java
运行import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.deser.std.BooleanDeserializer;
public class StoreSeckillMangerRequest {
// 兼容"1"/"0"和"true"/"false"
@JsonDeserialize(using = BooleanDeserializer.class)
private Boolean status;
// 其他字段...
}
