2012-04-01 19 views
1

Ich habe einen JSON, die Folgendes enthält:Nullpointer Deserialisieren mit Gson

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

Ich erkläre die Daten HashMap mit:

public class Galax { 

    public HashMap <String, InnerObject> pos; 
} 

public class InnerObject { 

    public Debris debris; 
} 

public class Debris { 

    public double titanium, silicum; 
} 

Und ich rufe die Daten dies mit:

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

Das Problem ist, dass ich immer NullPointerException bekommen, wenn Sie versuchen um die Daten im Protokoll zu zeigen ... Ich verstehe nicht warum, weil ich es genauso mache, um Daten von anderen JSON zu erhalten und es funktioniert einwandfrei ...

Was kann das Problem sein?

Vielen Dank im Voraus!

+0

Wenn Sie den gesamten Stacktrace posten könnten, erhalten Sie eher eine hilfreiche Antwort. – NotACleverMan

+0

Sie sagen, Sie treffen einen Nullzeiger an dieser Zeile: "System.out.println (galax.pos.get (" p2 "). Trümmer.titanium);" versuchen Sie, es durch den Debugger zu führen und genau zu sehen, auf welchen Punkt Sie den Null-Zeiger drücken. Es könnte "galax.pos.get (" p2 ")" oder "galax.pos.get (" p2 ") sein. Trümmer" oder "galax.pos.get (" p2 "). Trust.titanium". Ich denke, es könnte ein Problem sein, das JSON zu analysieren. – NotACleverMan

+1

Es sieht nicht wie ein gültiger JSON-Array-String aus. Können Sie den vollständigen JSON-String posten? – yorkw

Antwort

1

Ich sehe "pos" im Code, aber nicht in der JSON-Zeichenfolge. offizielle Antwort. :-)

+0

Vielen Dank! :) –

Verwandte Themen