GSON ClassCast 异常无法从对象转换为字符串
GSON ClassCast Exception cannot cast from object to string
List<Object> l = new ArrayList<Object>();
l.add("abc");
String s = (String) l.get(0); /////// No Exception here
System.out.println(l);
String json = gson.toJson(l);
System.out.println(json);
Type t = new TypeToken<List<Object>>() {
}.getType();
List<Object> dl = gson.fromJson(json, t);
String ds = (String) dl.get(0); /////Class Cast Exception here
做类似上面的事情。我正在尝试序列化对象列表。其中的第一个元素是一个字符串,但是当我反序列化列表并将第一个元素读入一个字符串时,它会抛出一个类转换异常。并且在序列化之前将第一个元素读取到字符串时没有异常。
这背后的原因是什么?
我有旧版本的 GSON 1.4。
更新到 2.2.4 版本有效。
List<Object> l = new ArrayList<Object>();
l.add("abc");
String s = (String) l.get(0); /////// No Exception here
System.out.println(l);
String json = gson.toJson(l);
System.out.println(json);
Type t = new TypeToken<List<Object>>() {
}.getType();
List<Object> dl = gson.fromJson(json, t);
String ds = (String) dl.get(0); /////Class Cast Exception here
做类似上面的事情。我正在尝试序列化对象列表。其中的第一个元素是一个字符串,但是当我反序列化列表并将第一个元素读入一个字符串时,它会抛出一个类转换异常。并且在序列化之前将第一个元素读取到字符串时没有异常。
这背后的原因是什么?
我有旧版本的 GSON 1.4。
更新到 2.2.4 版本有效。