java - 将 JSON 字符串转换回 Java 列表

标签 java json gson

我正在使用 gson 将列表转换为 JSON 字符串并返回列表。我在将列表中的对象转换回字符串时遇到 ClassCastException。我将不胜感激。

public void JSONTest()    
{

    List<String> list=new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    System.out.println(list);
    Gson gsonSender = new Gson();
    String json = gsonSender.toJson(list);
    System.out.println(json);
    Gson gsonReceiver = new Gson();
    List obj = gsonReceiver.fromJson(json, List.class);
    Iterator it=obj.iterator();
    while(it.hasNext())
    {
        System.out.println((String)it.next());//java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String
    }

}

最佳答案

Type type = new TypeToken<List<String>>(){}.getType();
 List<String> obj = gsonReceiver.fromJson(json,type);

Type 来自 java.lang.reflect.Type,TypeToken 来自 com.google.gson.reflect.TypeToken。

关于java - 将 JSON 字符串转换回 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514283/

相关文章:

javascript - 使用换行符解析 json 并显示为 HTML

Java:用空值反序列化一个json数组

android - org.json.JSONArray 无法转换为 double[]

sql - 获取计数和每个计数明细的详细信息

java - 使用继承的 Struts2 约定插件结果

java - 使用 Jersey 进行客户端身份验证

java - 在 JFrame 中创建基本动画

c# - 具有资源模型 PUT 的 WebAPI 项目中 System.Type 的序列化/反序列化

java - 使用 GSON 访问 JSON 元素

java - 将 arraylist 拆分为单独的数组,其中包含导入数据中的各个元素