将JSON字符串转换回Java List

时间:2014-05-07 09:45:47

标签: java json gson

我正在使用gson将List转换为JSON字符串并返回List.I在将列表中的对象转换回string时我得到了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
    }

}

2 个答案:

答案 0 :(得分:8)

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。

答案 1 :(得分:0)

试试这个

List<String> obj = gsonReceiver.fromJson(json, List.class);