这是我的考试代码
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
JsonWriter jsonWriter = null;
try {
jsonWriter = new JsonWriter(
new OutputStreamWriter(new FileOutputStream(new File("D:/test.json")), "UTF-8"));
List<String> stringList = new ArrayList<String>();
stringList.add("aaaaaaaaaaaaaaaaaaaaaa");
stringList.add("bbbbbbbbbbbbbbbbbbbbbbbb");
stringList.add("ccccccccccccccccccccccdd");
Data data = new Data();
data.setFucName("addXkg");
data.setSqlList(stringList);
gson.toJson(data, Data.class, jsonWriter);
Gson gson1 = new Gson();
File file = new File("D:/test.json");
if (file.exists()) {
JsonReader jsonReader = new JsonReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
// jsonReader不为null,当来到data2时,它在控制面板中显示为null
Data data2 = gson1.fromJson(jsonReader, new TypeToken<Data>() {
}.getType());
System.out.println(data2);
for (String string : data2.getSqlList()) {
System.out.println(string);
}
}
并且在for()函数前面返回null,为什么?
答案 0 :(得分:0)
我发现哪里出错,只需删除Gson gson1 = new Gson();
上方的代码即可。
但有人可以解释一下吗?为什么...