Java fromJson(JsonReader,type)返回null
这是我的孔测试代码Java fromJson(JsonReader,type)返回null,java,json,gson,Java,Json,Gson,这是我的孔测试代码 Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create(); JsonWriter jsonWriter = null; try { jsonWriter = new JsonWriter( new OutputStreamWriter(new FileOutputStream(new File("D:/test.json
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,为什么?我发现哪里出错了,只需删除Gson gson1=new Gson上面的代码;而且效果很好。
但是有人能解释吗?为什么…1。前面是什么意思?2.你试过自己调试吗?你试过什么?闻起来像是家庭作业。。。请参阅:如果读取器处于EOF,则fromJson返回null。文件是空的吗?我的英语不是很好,我的意思是var data2引用null,我尝试在没有帮助的情况下自己调试它,jsonReader不是空的,我尝试将Data.class替换为new TypeToken{}.getType,但它仍然不工作,最后文件不是空的,很抱歉我的英语不好。。