Ich habe eine HashMap, die aus einer JSON-Datei aufgefüllt wird. Die Werte im Schlüssel/Wert-Paar können zwei verschiedene Typen haben - String oder ein anderes Schlüssel/Wert-Paar.Herauszufinden, welcher Typ in HashMap verwendet wird
Zum Beispiel:
HashMap<String,Object> hashMap = new Map();
Die JSON-Datei sieht ein wenig so etwas wie dieses:
"custom": {
"mappedReference": {"source": "someMappedReference"},
"somethingElse": "some literal"
}
}
Später nach Hashmap bevölkern, wenn ich Iterieren bin durch ich überprüfen müssen, wenn Der Wert ist vom Typ HashMap oder String. Ich habe eine Reihe von Möglichkeiten ausprobiert, aber ich kann den Typ des Objekts nicht innerhalb der Map finden.
for(Map.Entry<String,Object> m : hashMap.entrySet())
{
final String key = m.getKey();
final Object value = m.getValue();
if(value instanceof Map<String,String>)
{
//get key and value of the inner key-value pair...
}
else
{
//it's just a string and do what I need with a String.
}
}
Irgendwelche Ideen, wie ich den Datentyp von der Karte bekommen kann? Vielen Dank im Voraus
'' map.get (key) .getClass() '' http://stackoverflow.com/questions/8029618/get-variable-type-in-a-hashmap-in-java –
Schlüssel. getClass(); –
Eine Karte enthält keine Metadaten. Sie können die Klasse eines Schlüssels und den Wert eines bestimmten Eintrags kennen, jedoch nicht die generischen Parameter. –