2017-09-04 5 views
-2

Das ist mein Loch Testcodegson.fromJson (JsonReader, Typ) gibt null zurück

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 nicht null ist und wenn es um Daten2 kommt zeigt null in Bedienfeld

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

und es gibt null vor for() -Funktion zurück, warum?

+1

1. Was bedeutet "vor"? 2. Haben Sie versucht, es selbst zu debuggen? – DevDio

+0

Was hast du probiert? Riecht wie Hausaufgaben ... Siehe: https://stackoverflow.com/help/how-to-ask – Flummox

+0

'fromJson()' gibt null zurück, wenn der Leser bei EOF ist. Ist die Datei leer? –

Antwort

0

Ich finde, wo schief gelaufen ist, löschen Sie einfach den Code über Gson gson1 = new Gson(); und es funktioniert gut. Aber wer kann das erklären? Warum ...