Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JSON响应解析到列表中_Java_Json - Fatal编程技术网

Java 将JSON响应解析到列表中

Java 将JSON响应解析到列表中,java,json,Java,Json,我正在尝试解析JSON响应 它的结构是: { "metric": { "name": "string", "values": [ "string" ] } } 到目前为止,我的代码是: StringBuilder sb = new StringBuilder(); String line; BufferedReader reader = new BufferedReader(new InputStrea

我正在尝试解析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);
        }
打印件如下:

[{"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");

values
metric
中的一个字段

您需要首先获取
度量
对象,然后在该对象中查找

JSONObject metric = json.getJSONObject("metric");
JSONArray jsonArray = metric.getJSONArray("values");

谢谢你的帮助,你让我更进一步了,这是我第一次使用JSON,如果你能帮我编辑的话,那就太好了。
metric\u data
在哪里?顺便说一句,我不太喜欢移动球门柱。如果你有一个后续问题,另一个问题会更好,如果这回答了问题的书面形式。对不起,整个星期都忙于考试,我已经发布了一个新的问题。
JSONObject metric = json.getJSONObject("metric");
JSONArray jsonArray = metric.getJSONArray("values");