Ich habe eine JSON-Zeichenfolge, die ich in eine HashMap analysieren möchte.Gson von JSON zu HashMap <Integer, MyObject> wobei Integer innerhalb des JSON-Objekts ist
Mein Objekt sieht wie folgt aus:
public class MyObject {
private int id;
private String text;
}
und die JSON-String sieht wie folgt aus:
objects:[
{"id":1, "text":"firsttext"},
{"id":2, "text":"secondtext"},
{"id":3, "text":"thirdtext"}
]
Wie würde ich mich über ordentlich dies in eine HashMap < Integer Parsen MyObject>, so dass Wenn ich HashMap.get (2) aufrufen würde, würde das zweite Objekt des Arrays, das "secondtext" enthält, zurückgeben?
Gerade jetzt, was ich tun ist
Type integerStringMap = new TypeToken<Map<Integer, MyObject>>(){}.getType();
HashMap<Integer, MyObject> objects = new Gson().fromJson(content, integerStringMap);
Aber ich bin java.lang.NumberFormatException bekommen: Für Eingabestring: "id".
Ich fühle mich ziemlich ahnungslos, wie man das ohne Loops löst und ich hoffe wirklich, dass es einen clevereren Weg gibt, dies zu tun. Würde mich über jede Hilfe freuen!
EDIT: Hier ist ein Ausschnitt von Code, der tut, was ich will:
Type integerObjectList = new TypeToken<List<MyObject>>(){}.getType();
List<MyObject> cardList = new Gson().fromJson(jsonString, integerObjectList);
HashMap<Integer, MyObject> cardMap = new HashMap<Integer, MyObject>();
for (MyObject o : objectList) {
objectMap.put(o.getId(), o);
}
ich würde, wenn möglich, möchte es ohne die for-Schleife zu tun.
Werfen Sie einen Blick auf [diese] (http://www.leveluplunch.com/java/examples/convert-json-to-from-map-jackson/). –