0

我有以下 JSON,它是消息的通用包装器。从主题我可以确定内容是什么。

{
  "subject" : "P:WORKSPACE:ADDED",
  "msgType" : "FileInfo[]",
  "contents" : [ {
    "lastModified" : 1380552566000,
    "name" : "genSPI.vhd.pshdl",
    "size" : 630,
    "syntax" : "unknown",
    "type" : "pshdl"
  } ]
}

现在,当我使用 objectReader 读取对象时,内容将是带有嵌入式 Maps 的通用 ArrayList,因为 objectReader 不知道如何处理内容。这对我来说没问题。但是我以后如何从内容中创建一个类?我不想使用 Jackson 的多态特性,因为 Message 可以包含的类不是静态已知的。

到目前为止,我发现的解决方案对我来说似乎相当笨拙:

final Object json = message.getContents();
final String jsonString = writer.writeValueAsString(json);
final FileInfo[] readValues = mapper.readValue(jsonString, FileInfo[].class);
4

0 回答 0