У меня есть JSON ниже:
"total":"2",
"offset":"1",
"limit":"2",
"results":[{
"code":1,
"title":"RESTAURANTE SADOCHE",
"contact":{
"code":10,
"name":"HENRIQUE BARBALHO",
"company":{
"code":100,
"name":"RESTAURANTE SADOCHE LTDA-ME"
}
}
},
{
"code":2,
"title":"ARNALDO GRILL",
"contact":{
"code":20,
"name":"FÁTIMA COSTA",
"company":{
"code":200,
"name":"COSTA NATAL RESTAURANTE EIRELI"
}
}
}]
Я превратил этот JSON в Java HashMap с помощью библиотеки Gson.
Map<String, Object> retMap = new Gson().fromJson(jsonUpString, new TypeToken<HashMap<String, Object>>(){}.getType());
Мне нужно динамически прочтите некоторые свойства созданной хэш-карты. Пример: заголовок, имя контакта и имя компании.
Иногда эти свойства (заголовок, имя контакта и имя компании) могут быть внутри списков.
Ниже моего кода:
String propertyName = "name";
String nesting = "results;contact;company";
String[] levels = nesting.split(";");
Map map = new HashMap();
map = retMap;
for (int i = 0; i < niveis.length; i++) {
map = (Map)map.get(levels[i]);
System.out.println(map);
if (i == levels.length - 1) {
System.out.println(map.get(propertyName));
}
}
Но если свойства (результаты, контакт или компания) возвращают более одного объекта, JSON возвращает их в виде списков, и я не могу получить нужную мне информацию.