2017-09-04 3 views
-2

Ceci est mon code de test de trougson.fromJson (JsonReader, type) retourne 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 est pas nul et quand vient Données2 il montre nulle dans le panneau de contrôle

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

et il retourne null devant for(), pourquoi?

+1

1. Que signifie «devant»? 2. avez-vous essayé de le déboguer vous-même? – DevDio

+0

Qu'avez-vous essayé? Ça sent le devoir ... Voir: https://stackoverflow.com/help/how-to-ask – Flummox

+0

'fromJson()' renvoie une valeur nulle si le lecteur est à EOF. Le fichier est-il vide? –

Répondre

0

Je trouve où s'est mal passé, il suffit de supprimer le code ci-dessus Gson gson1 = new Gson(); et cela fonctionne très bien. Mais quelqu'un qui peut expliquer cela? Pourquoi ...