为了账号安全,请及时绑定邮箱和手机立即绑定

弹簧框架:@RequestBody 中的 UUID

弹簧框架:@RequestBody 中的 UUID

蝴蝶不菲 2022-07-14 16:32:34
下一个示例工作正常:@PostMapping("/test/{id}")public ResponseEntity test(@PathVariable UUID id){    System.out.println(id);    return ResponseEntity.ok().build();}但是当我尝试在 RequestBody 中使用 UUID@PostMapping("/test")public ResponseEntity test(@RequestBody TestDTO testDTO){    System.out.println(testDTO.id);    return ResponseEntity.ok().build();}然后我进入null控制台id 字段具有 UUID 类型public class TestDTO {    UUID id;}如果将 UUID 替换为字符串,则代码可以正常工作。我的请求看起来像这样curl -XPOST -H "Content-Type: application/json" -d '{"id": "00000000-0000-0000-0000-000000000000"}' localhost:8080/test/test如何使用 UUID 修复它?
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

@JsonDeserialize用字段注释可以正常工作:


import com.fasterxml.jackson.databind.annotation.JsonDeserialize;


import java.util.UUID;


public class TestDTO {

    @JsonDeserialize

    UUID id;

}

升级版:


这个解决方案也可以在没有注释的情况下工作:


public class TestDTO {


    private UUID id;


    public UUID getId() {

        return id;

    }


    public void setId(UUID id) {

        this.id = id;

    }

}


查看完整回答
反对 回复 2022-07-14
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果您添加id属性的 getter/setter,那么您将获得它的值。

在这里我找到了一个关于 JSON Marshalling 的很好的演示


查看完整回答
反对 回复 2022-07-14
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信