我想创建一个对象作为JSON传入的内部类类型,但虽然我已经读了吨在这里以及杰克逊的网站我似乎无法获得所以如果任何人有任何指针,他们将非常感激。我已经在下面发布了一些片段,并删除了所有获得者和安装者,我没有想到他们需要发布。我使用杰克逊2.2。杰克逊杰森类型映射内部类
我试图将类反序列化:
public class Settings {
private int offset;
private int limit;
private String type;
private Map<String, Criteria> 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" } }
内部类必须是静态的。请参阅http://www.cowtowncoder.com/blog/archives/2010/08/entry_411.html – Paul
当按照这些说明,我收到错误:“成员类型[类名称]不能被声明为静态;静态类型只能是声明在静态或顶级类型“ – coltonfranco
有关嵌套类和杰克逊的更多信息,请参阅此博客文章。序列化工作正常,但反序列化不会,除非类是静态嵌套类型 - http://www.cowtowncoder.com/blog/archives/2010/08/entry_411.html – testerjoe2