Java 通过gson反序列化对象会导致空指针异常
下面是我的pojo课程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
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);
}