Nie mam pojęcia dlaczego this.m_tankNamesHashMap.get(1)
zwraca null
, a powinien ABC
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class TankNames {
private Map<Long, String> m_tankNamesHashMap = new HashMap<Long, String>();
@SuppressWarnings("rawtypes")
TankNames() {
String n = "{ \"status\": \"ok\", \"meta\": { \"count\": 1 }, \"data\": { \"1\": { \"short_name\": \"T-34\", \"tank_id\": 1 } } }";
JSONParser parserJson = new JSONParser();
try {
Object obj = parserJson.parse(n);
JSONObject jsonObj = (JSONObject) obj;
//get Status: by String
String jsonText = (String) jsonObj.get("status");
System.out.println(jsonText);
//get data: by Object
JSONObject jsonObjData = (JSONObject) jsonObj.get("data");
//get keys from data
for(Iterator objects = jsonObjData.keySet().iterator(); objects.hasNext();) {
String key = (String) objects.next(); //key
Object obj2 = parserJson.parse(jsonObjData.get(key).toString());
JSONObject jsonObj2 = (JSONObject) obj2;
this.m_tankNamesHashMap.put((Long)jsonObj2.get("tank_id"), jsonObj2.get("short_name").toString());
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(this.m_tankNamesHashMap.get(1)); //Dlaczego zwraca null?
}
}
{
"status": "ok",
"meta": {
"count": 1
},
"data": {
"1": {
"short_name": "ABC",
"tank_id": 1
}
}
}
Użyta biblioteka json-simple-1.1.1.jar
Co źle robię?