【问题标题】:de-serializing an object through gson results in null pointer exception通过 gson 反序列化对象导致空指针异常
【发布时间】:2016-09-16 13:21:12
【问题描述】:

以下是我的 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
}

我使用以下代码来检索之前保存的 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);
            }

pairs.getValue() 得到以下 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}

当我说,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)

为什么会这样?

【问题讨论】:

  • 该错误表明gsonnull。你可能从未初始化过它。
  • 兄弟....太棒了...我不知道为什么我犯了这么愚蠢的错误...我忘了初始化它...谢谢

标签: java android json gson


【解决方案1】:

“gson”对象需要初始化。这是一个链接.. 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);
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多