Java 默认情况下使用数组,而不是Jackson';s对象映射器

Java 默认情况下使用数组,而不是Jackson';s对象映射器,java,json,jackson,Java,Json,Jackson,默认情况下,Jackson的ObjectMapper将未知列表反序列化为ArrayList,是否可以改为使用字符串[] class SomeBean { Object[] items; } 例如,此JSON导致项[0]的类型为ArrayList: {"items":[["a", "b"]]} 目前还没有,不过如果你想看到这样的功能,你可以通过在Jackson JIRA创建一个功能请求来提出建议(http://jira.codehaus.org/browse/JACKSON). 实施应该相

默认情况下,Jackson的ObjectMapper将未知列表反序列化为ArrayList,是否可以改为使用字符串[]

class SomeBean {
  Object[] items;
}
例如,此JSON导致项[0]的类型为ArrayList:

{"items":[["a", "b"]]}

目前还没有,不过如果你想看到这样的功能,你可以通过在Jackson JIRA创建一个功能请求来提出建议(http://jira.codehaus.org/browse/JACKSON). 实施应该相当简单;由类似“反序列化配置.功能.JSON_数组作为JAVA_数组”之类的东西启用(或其他任何东西)


这里我假设您希望看到一个对象[],因为它不能保证内容都是字符串(可以有数字、字符串、布尔、列表/地图等).

为什么不在反序列化后使用
toArray
?@Valentin-因为在实际使用中,bean更复杂,我不想遍历整个对象树来查找ArrayList。如果它们都是字符串,我希望看到字符串[]。对,这只是不能以流式方式确定;因此,它要么需要由调用者声明,要么通过后处理(可能通过缓冲所有元素来查看它们的类型)来完成。不过,如果这样做了,它可以用来创建字符串[]、数字[]等。不确定这会有多大用处,但肯定是可能的。