2012-04-01 4 views
1

У меня есть JSON, который содержит следующее:NullPointerException десериализации с gson

{"p1":{"debris":{"titanium":0,"silicum":0}},"p2":{"debris":{"titanium":0,"silicum":0}}... 

Я объявляю данные, используя HashMap:

public class Galax { 

    public HashMap <String, InnerObject> pos; 
} 

public class InnerObject { 

    public Debris debris; 
} 

public class Debris { 

    public double titanium, silicum; 
} 

И я называю данные с помощью этого:

 Galax galax = new Gson().fromJson(strGalaxy, Galax.class); 
     System.out.println(galax.pos.get("p2").debris.titanium); 

Проблема в том, что я всегда получить исключение NullPointerException при попытке чтобы показать данные в журнале ... Я не понимаю, почему, потому что я использую это точно так же, как получить данные других JSON, и он отлично работает ...

В чем может быть проблема?

Спасибо заранее!

+0

Если бы вы могли опубликовать весь стек, вы, скорее всего, получите полезный ответ. – NotACleverMan

+0

Вы говорите, что вы нажимаете нулевой указатель на эту строку: «System.out.println (galax.pos.get (« p2 »). Debris.titanium); попробуйте запустить его через отладчик и посмотреть, в какой именно точке вы нажмете нулевой указатель. Это может быть «galax.pos.get (« p2 »)» или «galax.pos.get (« p2 »). Debris» или «galax.pos.get (« p2 »). Debris.titanium». Я думаю, что это может быть проблема анализа JSON. – NotACleverMan

+1

Это не похоже на допустимую строку массива json, но вы можете опубликовать полную строку json? – yorkw

ответ

1

Я вижу «pos» в коде, но не в строке JSON. официальный ответ. :-)

+0

Большое спасибо! :) –

Смежные вопросы