我有一个带有布尔(不是原始布尔)属性的bean。这是因为属性与该类的每个实例都不相关,因此应为nullable

Bean在创建REST服务上作为JSON发送。控制器接收null而不是实际值。

我的控制器:

@RestController
@RequestMapping("/myBean")
public class MyBeanController {

    @Autowired
    private MyBeanService myBeanService;

    @PostMapping("/create" )
    public ResponseEntity createTransaction(@RequestBody MyBeanDTO myBean) {
        MyBeanDTO result = myBeanService.create(myBean);
        return new ResponseEntity(result, HttpStatus.OK);
    }
}


我的豆子:

public class MyBean  {

    . . .
    private Boolean active;
    . . .

    public Boolean getActive() { //Instead of isActive, as it's Boolean and not boolean
        return active;
    }

    public void setActive(Boolean active) {
        this.active = active;
    }
}


我发送的JSON均未正确解析属性“活动”,并且始终以null形式出现。我已经尝试过true,“ true”,{“ value”:true}。我想念什么?

最佳答案

@JsonProperty添加到字段:

@JsonProperty("active")
private Boolean active



  标记批注,可用于将非静态方法定义为逻辑属性的“设置者”或“获取器”(取决于其签名),或将用作逻辑的非静态对象字段(序列化,反序列化)属性。


如果不起作用,请在@RequestBody方法中的MyBeanDTO之前删除createTransaction

09-30 17:16
查看更多