我正在编写RestEasy Client API,输出就像这样
API A返回{" obj_a_list" :[A的对象] API B返回{" obj_b_list" :[B的对象]}
我正在尝试编写泛型类
import java.util.List;
class ListOfList<T> {
public ListOfList () {}
public List<T> getList() {
return theList;
}
public void setList(List<T> theList) {
this.theList = theList;
}
private List<T> theList;
} // ListOfList
是否可以在List属性上使用动态注释@JsonProperty(&#34; obj_a_list&#34;)或@JsonProperty(&#34; obj_b_list&#34;)?
以便可以将其解析为
ListOfList<A> lol = response.readEntity(new GenericType<ListOfList<A>>(){});
List<A> la = lol.getList();
谢谢, 萨米尔
答案 0 :(得分:0)
目前正在使用此解决方法。
/*
jsonString format could be
{ "A" : [ Array of A ] } OR
{ "B" : [ Array of B ] } OR
{ "C" : [ Array of C ] }
*/
public static <T> List<T> getList(Class<T> clazz, String jsonString, String arrayName) {
ObjectMapper mapper = new ObjectMapper();
List<T> retVal = new ArrayList<T>();
try {
Map<String, List<T>> userData = mapper.readValue(jsonString, Map.class);
List<T> l = userData.get(arrayName);
for (T a: l) {
retVal.add(mapper.readValue(mapper.writeValueAsString(a), clazz));
} // for
} catch (IOException e) {
e.printStackTrace();
}
return retVal;
}