Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用mapper.readValue将有效的UUID字符串转换为UUID_Java_Uuid_Mapper - Fatal编程技术网

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

Java 无法使用mapper.readValue将有效的UUID字符串转换为UUID,java,uuid,mapper,Java,Uuid,Mapper,我有一个字符串格式的有效UUID 7a041f81-1214-41e5-bb58-9a46b2ca08d4 但是,当我使用ObjectMapper将其转换为UUID时,我总是会遇到这个错误 UUID uuid = mapper.readValue("7a041f81-1214-41e5-bb58-9a46b2ca08d4",UUID.class); 错误: com.fasterxml.jackson.core.JsonParseException: 意外字符('a'(代码97)):应

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

7a041f81-1214-41e5-bb58-9a46b2ca08d4
但是,当我使用
ObjectMapper
将其转换为UUID时,我总是会遇到这个错误

    UUID uuid = mapper.readValue("7a041f81-1214-41e5-bb58-9a46b2ca08d4",UUID.class);
错误:

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


如何将字符串转换为UUID,以及为什么一直出现此错误?

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

UUID obj = UUID.fromString("7a041f81-1214-41e5-bb58-9a46b2ca08d4"); 

演示:

这不是一个有效的JSON,为什么您希望objectMapper会读取它?为什么您要使用jackson objectMapper将字符串转换为UUID?@Hummingbird,因为您使用的类解析JSON,而没有任何JSONinvolved@f1sh好的,所以我很好奇这个格式是否有效??
“{“uuid”:7a041f81-1214-41e5-bb58-9a46b2ca08d4}”
?JSON没有UUID类型-JSON解析器看到前导的“7”,并假设它可以解析一个数字,然后遇到“a”,并被迫放弃,因为它无法再将字符串解析为数字。JSON的值部分需要加引号,因此UUID最初作为字符串读取。而不是string,它是无效的JSON,因为它不是数字或布尔值,等等。如果您必须只使用映射器,那么您可以执行以下
mapper.readValue(“\”7a041f81-1214-41e5-bb58-9a46b2ca08d4\”,UUID.class);
如果解决了您的问题,请接受anser。