Java 通过gson反序列化对象会导致空指针异常

Java 通过gson反序列化对象会导致空指针异常,java,android,json,gson,Java,Android,Json,Gson,下面是我的pojo课程 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 set

下面是我的pojo课程

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使用以下代码检索先前保存的json响应

  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);
            }
当我说,
gson.fromJson(pairs.getValue().toString(),LocalTrack.class)
时,它返回以下错误

java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.Object com.google.gson.gson.fromJson(java.lang.String, java.lang.Class)“”在空对象引用上 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)


为什么会这样?

需要初始化“gson”对象。这里有一个链接。。

Gson-Gson=new-Gson();
Map all=tinydb.getAll();
迭代器it=all.entrySet().Iterator();
while(it.hasNext()){
Map.Entry pairs=(Map.Entry)it.next();
LocalTrack LocalTrack=gson.fromJson(pairs.getValue().toString(),LocalTrack.class);
}

该错误表示
gson
null
。你可能从来没有初始化过。兄弟…太棒了。。。我不知道为什么我犯了这么愚蠢的错误…我忘了初始化它…谢谢
{"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}
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);
            }