UPDATE: Я только понял, что вы использовали Джексон для автоматического преобразования вашего JSON вместо того, чтобы вручную разглашать его, как я предложил. Мой предыдущий ответ может не соответствовать вашим потребностям.
Мое замечание было бы следующим: какие эти переменные ключи? Вероятно, это должно быть значение для ключа с именем «id» или что-то еще.
Кроме того, вам следует рассмотреть возможность использования массива JSON.
Вот пример того, что ваш JSON должен вероятно выглядеть вместо:
{
"flux":[
{
"id":"1400364000",
"Optaf_matchdata":{
"uid":"749674", "fk_comp_id":"2414", "comp_id":"112", "saisonid":"2013", "temps":null, "matchday":"40"
}
},
{
"id":"1400104800",
"Optaf_matchdata":{
"uid":"749670", "fk_comp_id":"2414", "comp_id":"112", "saisonid":"2013", "temps":null, "matchday":"39"
}
}
]
}
ОРИГИНАЛЬНЫЙ ОТВЕТ
, как я могу получить их Optaf_matchdata из этого ключа 1400364000, например,
Не уверен, что я понял ваш вопрос, но вот моя попытка ответить.
Вы можете использовать getJSONObject()
метод:
JSONObject source = new JSONObject(jsonString);
JSONObject flux = source.getJSONObject("flux");
JSONObject item = flux.getJSONObject("1400364000"); // this string can be dynamic
JSONObject optafMatchData = item.getJSONObject("Optaf_matchdata");
Можно даже итерацию по всем ключам flux
объекта (1400364000 подобные клавиши):
JSONObject source = new JSONObject(jsonString);
JSONObject flux = source.getJSONObject("flux");
Iterator<?> keys = flux.keys();
while(keys.hasNext()){
String key = (String) keys.next();
JSONObject item = flux.getJSONObject(key);
JSONObject optafMatchData = item.getJSONObject("Optaf_matchdata");
// do whatever with this item/match data
}
Тогда вы можете написать метод, который будет анализировать объект OptafMatchData
от JSON:
private static OptafMatchData parseMatchData(JSONObject item) throws JSONException {
OptafMatchData omd = new OptafMatchData();
omd.setUid(item.getLong("uid"));
omd.setFkCompId(item.getLong("fk_comp_id"));
omd.setCompId(item.getLong("comp_id"));
// and so on...
return omd;
}
@nikis Вы добавили недостающую фигурную скобку в формате JSON, может быть, это должно быть указано вне. – Joffrey
Возможно, я стараюсь держать только важную часть Json, что вызывает у меня проблема я удалить все другие части Вот полный JSON www.thefanclub.com/appsfootball/calendrierbyteamid/241/0/active.ijson – tamtoum1987
OK, оригинальный JSON кажется правильным, вы, вероятно, удалили эту фигурную скобку, отрубив ненужные части JSON. – Joffrey