无法使用 mapper.readValue 将有效的 UUID 字符串转换为 UUID

5 java uuid mapper

我有一个字符串格式的有效 UUID

7a041f81-1214-41e5-bb58-9a46b2ca08d4
Run Code Online (Sandbox Code Playgroud)

但是当我使用 aObjectMapper将其转换为 UUID 时,我不断收到此错误。

    UUID uuid = mapper.readValue("7a041f81-1214-41e5-bb58-9a46b2ca08d4",UUID.class);
Run Code Online (Sandbox Code Playgroud)

错误:

com.fasterxml.jackson.core.JsonParseException:意外的字符('a'(代码 97)):预期的空格分隔根级别值 [来源:(字符串)“7a041f81-1214-41e5-bb58-9a46b2ca08d4”;行:1,列:3] 在 com.xxxx.yyyyy.zzzzz.Test.callTest(BmcEventListenerTest.java:22

如何将字符串转换为 UUID?为什么我不断收到此错误?

kar*_*ivi 5

您不需要对象映射器,您可以执行以下操作

UUID obj = UUID.fromString("7a041f81-1214-41e5-bb58-9a46b2ca08d4"); 
Run Code Online (Sandbox Code Playgroud)

演示: https: //onecompiler.com/java/3v2sr8pk8

  • JSON 没有 UUID 类型 - JSON 解析器看到前导“7”并假设它可以解析数字,然后遇到“a”并被迫放弃,因为它无法将字符串解析为号码不再了。 (2认同)