2016-09-16 3 views
1

Folgende ist meine pojo Klasse,de-Serialisierung

public class LocalTrack { 
    private long id; 
    private String title; 
    private String artist; 
    private String album; 
    private String path; 
    private long duration; 
    private String index; 

    //constructor 

    //getter setters for above fields 
} 

Im den folgenden Code mit dem Json Antwort abzurufen, die zuvor gespeichert wird.

Map<String, ?> all = tinydb.getAll(); 
      Iterator  it = all.entrySet().iterator(); 
      while (it.hasNext()) { 
       Map.Entry pairs = (Map.Entry) it.next(); 
       LocalTrack localTrack = gson.fromJson(pairs.getValue().toString(), LocalTrack.class); 
      } 

pairs.getValue() hat folgende json.

{"album":"http://MyMp3Song.Com","artist":"04 - Thai Mannai Vanakka","index":"#","path":"/storage/sdcard1/Download/04 - Thai Mannai Vanakkam(MyMp3Song.Com).mp3","title":"04 - Thai Mannai Vanakkam(MyMp3Song.Com)","duration":369424,"id":32004} 

Wenn ich sage, gson.fromJson(pairs.getValue().toString(), LocalTrack.class) es gibt folgende Fehler,

java.lang.NullPointerException: Der Versuch, virtuelle Methode ‚java.lang.Object com.google.gson.Gson aufzurufen. fromJson (java.lang.String, java.lang.Class)‘auf null Objektreferenz bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2364)

warum ist das so?

+0

Dieser Fehler sagt, dass '' gson' ist null'. Sie haben es wahrscheinlich nie initialisiert. –

+0

Bro .... Das ist großartig ... Ich weiß nicht warum ich so einen dummen Fehler gemacht habe ... Ich habe vergessen ihn zu initialisieren ... danke –

Antwort

1

Das 'Gson'-Objekt muss initialisiert werden. Hier ist ein Link .. mkyong on how to use gson

Gson gson = new Gson(); 
Map<String, ?> all = tinydb.getAll(); 
      Iterator  it = all.entrySet().iterator(); 
      while (it.hasNext()) { 
       Map.Entry pairs = (Map.Entry) it.next(); 
       LocalTrack localTrack = gson.fromJson(pairs.getValue().toString(), LocalTrack.class); 
      }