我正在使用Jackson来反序列化一个json文件(我用jackson序列化).json是一个简单的HashMap,但是当我尝试反序列化时,映射器正在抱怨.
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token
Run Code Online (Sandbox Code Playgroud)
我的序列化HashMap字符串.....
{
"0f861a9a-0a3e-40a7-8ff3-0b83d8070876" : {
"name" : "BAR.xml",
"filePath" : "/FOO/repo/BAR.xml"
},
"f3cbb32e-b7b8-4af1-b48b-7ea393de7971" : {
"name" : "BLAH.xml",
"filePath" : "/FOO/repo/BLAH.xml"
},
"012009b6-26e9-4bc1-9050-2a4ac9546c7e" : {
"name" : "Check System.xml",
"filePath" : "/FOO/repo/Check System.xml"
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了两种不同的方法来完成这项工作,但都失败了......
//doesn't work
cache = (Map<String,UUIDInfo>) mapper.readValue(bytes.toString(), new TypeReference<HashMap<String,UUIDInfo>>(){});
//doesn't work.
cache = (Map<String,UUIDInfo>) mapper.readValue(bytes.toString(), TypeFactory.mapType(HashMap.class, String.class, UUIDInfo.class));
Run Code Online (Sandbox Code Playgroud)
完整的堆栈跟踪
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.LinkedHashMap out of START_ARRAY token
at [Source: java.io.StringReader@32b9bd47; …Run Code Online (Sandbox Code Playgroud)