下一個示例工作正常:@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;
}
}
添加回答
舉報
0/150
提交
取消