java - Spring 框架: UUID in @RequestBody

标签 java spring

下一个示例运行良好:

@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 替换为 String,则代码可以正常工作。

我的请求是这样的

curl -XPOST -H "Content-Type: application/json" -d '{"id": "00000000-0000-0000-0000-000000000000"}' localhost:8080/test/test

如何使用 UUID 修复它?

最佳答案

@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;
    }
}

关于java - Spring 框架: UUID in @RequestBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921630/

相关文章:

java - 如何在选择模式下使用多个ID "Property"

java - 在 ActiveMQ 中查看消息时,可序列化类不可用于代理 : java. lang.ClassNotFoundException

java - 如何解决java.lang.OutOfMemoryError?

java - 将基类从java中的反序列化集合转换为继承类

java - 从 UML 生成 Java 项目的程序

spring - 替换 Spring 中的 Beans.xml 配置

java - 新的 Spring Starter 项目 - pom 错误

java - Spring:如何仅在Web应用程序中调用方法?

java - Spring中具有动态参数值的 Autowiring 类

java - 如何将环境属性读取到xml中