我有以下JSON,它是Messages的通用包装器。从主题我可以确定内容是什么。
{
"subject" : "P:WORKSPACE:ADDED",
"msgType" : "FileInfo[]",
"contents" : [ {
"lastModified" : 1380552566000,
"name" : "genSPI.vhd.pshdl",
"size" : 630,
"syntax" : "unknown",
"type" : "pshdl"
} ]
}
现在,当我使用objectReader读取Object时,内容将是带有嵌入Maps的通用ArrayList,因为objectReader不知道如何处理内容。这对我来说没问题。但是我怎样才能在以后的内容中创建一个类?我不想使用Jackson的多态特性,因为Message可以包含的类不是静态知道的。
到目前为止我找到的解决方案对我来说显得相当笨拙:
final Object json = message.getContents();
final String jsonString = writer.writeValueAsString(json);
final FileInfo[] readValues = mapper.readValue(jsonString, FileInfo[].class);