java - Gson 反序列化为 List<Object>,其中列表的通用类型作为类名给出

标签 java reflection gson

我需要以下形式的函数

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

此处的 jsonString 可以类似于以下内容,而 className 将类似于 com.example.mycontact

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

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

最佳答案

终于找到解决办法了。

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;
}

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

关于java - Gson 反序列化为 List<Object>,其中列表的通用类型作为类名给出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272704/

相关文章:

java - TimerTask 完成后调用主线程中的方法

java - 在 java 中编写合成/桥接方法

android - 获取包中基类的所有子类的实例

java - 如何用Gson解析响应

java - 检查手机屏幕是否亮起的方法

java - 使用 Java 运行 Shell 命令会出现问题

java - 如何用Gson提取字段?

java - GSON java 我怎样才能在映射和打印之间使用不同的名称?

java - 有没有办法减少我使用的 "if"语句的数量?

java - 在字符串中编译 Java 代码