使用 RestEasy 和 Jackson 将 json 输出解析为多种类型的列表

Parsing json output into lists of multiple types using RestEasy and Jackson

我在写 RestEasy Client API 输出是这样的

API A returns { "obj_a_list" : [A 的对象] } API B returns { "obj_b_list" : [ B 的对象] }

我正在尝试编写一个通用的 class

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

是否可以在列表中添加动态注解@JsonProperty("obj_a_list")或@JsonProperty("obj_b_list")属性?

以便可以将其解析为

ListOfList<A> lol = response.readEntity(new GenericType<ListOfList<A>>(){});
List<A> la = lol.getList(); 

谢谢, 萨米尔

目前正在使用此解决方法。

/*
        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;

    }