我正在使用 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/