2017-09-04 2 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がnullでなく、それを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();のコードを削除するだけで正常に動作します。 しかしこれを説明できる人はいますか?なぜ...

関連する問題