2017-09-04 135 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();,它工作正常。 但有人可以解釋這一點?爲什麼...