【发布时间】:2014-06-19 11:20:45
【问题描述】:
我想使用 Jackson 来解析对象列表。使用 Gson,我可以轻松做到这一点:
List<MyType> list = new Gson().fromJson(input, Types.listOf(MyType.class));
有了杰克逊,似乎更难了:
List<MyType> list = new ObjectMapper().readValue(input, /* What to put here? */);
代码需要适用于任何类型的列表(就像 Gson 一样),所以我不能只创建一个包含 MyType 列表的类型并将其传入。
我尝试过使用new TypeLiteral<List<MyType>>(){},它有效,但仅适用于单一类型。如果我将类型传递给方法,它就不再起作用了:
public <T> List<T> parse(Class<T> myType) {
// returns a List<Map<?,?>> instead of List<T>
return new ObjectMapper().readValue(input, new TypeLiteral<List<T>>(){});
}
我该如何处理杰克逊?
【问题讨论】: