Я пытаюсь разобрать JSON в ответАнализировать JSON ответ в список
это структура:
{
"metric": {
"name": "string",
"values": [
"string"
]
}
}
Мой код до сих пор:
StringBuilder sb = new StringBuilder();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = reader.readLine()) != null) {
sb.append(line);
}
wr.close();
reader.close();
JSONObject json = new JSONObject(sb.toString());
JSONArray jsonArray = json.getJSONArray("values");
List<String> list = new ArrayList<>();
String errorPercent ="";
for(int i = 0 ; i < json.length() ; i++){
errorPercent = jsonArray.getJSONArray(i).getString(i);
list.add(errorPercent);
}
Выход Я получение говорит о том, что «значения» не были найдены,
Я не понимаю структуру ответа JSON?
Редактировать
Оказывается, структура я был дан на сайте я получаю ответ от не правильно. это, как представляется, более сложной структурой
Я изменил мой код соответственно:
JSONObject json = new JSONObject(sb.toString());
JSONObject metricsData = json.getJSONObject("metric_data");
JSONArray metrics = metricsData.getJSONArray("metrics");
System.out.println(metrics.toString());
Печать вне следующим образом:
[{"timeslices":[{"values":{"max_response_time":0,"calls_per_minute":0,"average_be_response_time":0,"error_percentage":0,"min_response_time":0,"requests_per_minute":0,"average_network_time":0,"average_response_time":0,"average_fe_response_time":0,"total_app_time":0,"call_count":0,"fe_time_percentage":0,"total_network_time":0,"total_fe_time":0,"network_time_percentage":0},"from":"2015-10-25T22:39:00+00:00","to":"2015-10-25T22:40:00+00:00"},{"values":{"max_response_time":0,"calls_per_minute":0,"average_be_response_time":0,"error_percentage":0,"min_response_time":0,"requests_per_minute":0,"average_network_time":0,"average_response_time":0,"average_fe_response_time":0,"total_app_time":0,"call_count":0,"fe_time_percentage":0,"total_network_time":0,"total_fe_time":0,"network_time_percentage":0},
Там, как представляется, другой массив в массиве: «таймлисы» - это так? как я могу получить этот массив?
я безуспешно пытался:
JSONArray timeslices = metrics.getJSONArray("timeslices");
Спасибо за вашу помощь. У меня есть я немного дальше. Это мой первый опыт работы с JSON, если бы вы помогли мне с моим Редактированием, это было бы здорово. – Johntk
Где: 'metric_data'? Это не в ваших словах. –
BTW, я не большой поклонник движущихся ворот. Если у вас есть последующий вопрос, другой вопрос будет лучше, если это ответит на вопрос, как написано. –