jackson杰森类型映射内部类

我正在尝试为作为JSON传入的对象创建内部类类型,但是虽然我已经阅读了这里以及Jackson的网站,但我似乎无法获得正确的组合,所以如果其他人有任何指针他们会非常感激。 我在下面发布了一些片段并删除了所有的getter和setter,我没想到他们需要发帖。 我正在使用Jackson 2.2。

我试图反序列化的类:

public class Settings { private int offset; private int limit; private String type; private Map criteria; public class Criteria { private String restriction; private Object value; } } 

我用来反序列化的代码:

 ObjectMapper om = new ObjectMapper(); TypeFactory tf = om.getTypeFactory(); JavaType map = tf.constructMapLikeType( Map.class, String.class, Criteria.class ); JavaType type = typeFactory.constructType( Settings.class, map ); Settings settings = om.readValue( entity, type ); 

我的JSON测试数据:

 { "type": "org.json.Car", "criteria": { "restriction": "eq", "value": "bmw" } } 

如果可以,那么让你的生活变得简单,并使用Settings类中的引用将内部类移动到普通类。 然后使用jackson进行编组,以下是如何使用您的课程:

 public class Settings { private int offset; private int limit; private String type; private Map criteria; private Criteria criteria; } class Criteria { private String restriction; private Object value; } 

正确的答案是你缺少内部类的static关键字。

只需确保“static”关键字在那里。

阅读http://www.cowtowncoder.com/blog/archives/2010/08/entry_411.html

它需要你3分钟,但让你在一天剩下的时间里开心。