Хочу сделать так, чтобы i-тому элементу hostidList соответствовал i-тый host (тип ArrayList). Но проблема в том, что не могу корректно то ли ввести, то ли вывести по тому же принципу. json:
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10106",
"host": "Yandex DNS",
"interfaces": [
{
"interfaceid": "2",
"ip": "77.88.8.8"
}
]
},
{
"hostid": "10107",
"host": "OpenDns",
"interfaces": [
{
"interfaceid": "3",
"ip": "208.67.222.222"
},
{
"interfaceid": "46",
"ip": "105.67.222.5"
}
]
}
}
Код:
public static void main(String[] args) {
System.out.println(json);
List<String> hostidList = new ArrayList<>();
List<String> hostList = new ArrayList<>();
List<List> interfacesList = new ArrayList<>();
JSONObject jsonObj = new JSONObject(json);
// Getting JSON Array node
JSONArray array = jsonObj.getJSONArray("result");
// looping through All Contacts
for (int i = 0; i < array.length(); i++) {
JSONObject jsonObject = array.getJSONObject(i);
String hostid = jsonObject.getString("hostid");
String host = jsonObject.getString("host");
hostidList.add(hostid);
hostList.add(host);
List<String> list = new ArrayList<>();
JSONArray jsonArray = jsonObject.getJSONArray("interfaces");
for (int i1 = 0; i1 < jsonArray.length(); i1++) {
jsonObject = jsonArray.getJSONObject(i1);
String interfaceid = jsonObject.getString("interfaceid");
String ip = jsonObject.getString("ip");
list.add(interfaceid);
list.add(ip);
}
interfacesList.add(list);
}
for (int i = 0; i < hostList.size(); i++){
System.out.println("hostid = "+hostidList.get(i));
System.out.println("host = "+hostList.get(i));
for (int i1 = 0; i1 < (interfacesList.get(i).size()); i1++) {
System.out.println("interfacesid = "+interfacesList.get(i).get(i1).toString());
System.out.println("ip = "+interfacesList.get(i).get(i1).toString());
}
System.out.println("-----------------------");
}
}
Ответ:
hostid = 10106
host = Yandex DNS
interfacesid = 2
ip = 2
interfacesid = 77.88.8.8
ip = 77.88.8.8
-----------------------
hostid = 10107
host = OpenDns
interfacesid = 3
ip = 3
interfacesid = 105.67.222.5
ip = 105.67.222.5
interfacesid = 46
ip = 46
interfacesid = 105.67.222.5
ip = 105.67.222.5
-----------------------
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно определить, является ли введенный текст палиндромомПалиндро́м — буквосочетание, слово или текст, одинаково читающееся в обоих направлениях
Собрал проект мавеном в JAR файлВнутри архива есть папка с картинками, однако не могу понять, как прописать путь к этим файлам так, чтобы можно...