Gson反序列化为List <object>,其中泛型类型的列表以classname </object>的形式给出

时间:2015-03-26 07:00:02

标签: java reflection gson

我需要以下形式的功能

List<Object> deserialize(String className, String jsonString){
}

这里jsonString可以是类似下面的内容,className将是com.example.mycontact

之类的东西

[{"name":"myName","mobile":"12344557899"},{"name":"myName","mobile":"12344557899"}]

现在我如何使用gson将其转换为Contact列表。请注意,它不需要在不同的呼叫中联系。

1 个答案:

答案 0 :(得分:2)

终于找到了解决方案。

List<Object> deserialize(String className, String jsonString){  
    JsonParser parser = new JsonParser();
    JsonArray jsonArray = (JsonArray) parser.parse(jsonString);
    Iterator<JsonElement> iterator = jsonArray.iterator();
    List<Object> list = new ArrayList<>();
    while (iterator.hasNext()) {
        list.add(gson.fromJson(iterator.next(), className));
    }
    return list;
}

如果您有更优雅的解决方案,请回答。