2017-09-04 131 views
-2

这是我的孔的测试代码gson.fromJson(JsonReader,类型)返回null

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不为空,并且当涉及到DATA2它示出了控制面板空

Data data2 = gson1.fromJson(jsonReader, new TypeToken<Data>() { 
      }.getType()); 
      System.out.println(data2); 
      for (String string : data2.getSqlList()) { 
       System.out.println(string); 
      } 
     } 

并且它在for()函数前面返回null,为什么?

+1

1.“前面的”是什么意思? 2.你有试图自己调试吗? – DevDio

+0

你有什么尝试?闻起来像功课...见:https://stackoverflow.com/help/how-to-ask – Flummox

+0

'fromJson()'如果阅读器在EOF返回null。该文件是否为空? –

回答

0

我发现哪里出错了,只需删除上面的代码Gson gson1 = new Gson();,它工作正常。 但有人可以解释这一点?为什么...