private void getInfoFromJsonSummary()

in odps-console-public/src/main/java/com/aliyun/openservices/odps/console/common/JobDetailInfo.java [322:381]


  private void getInfoFromJsonSummary(List<FuxiJob> fuxiJobs, String jsonSummaryContent)
      throws IOException {
    JsonReader reader = new JsonReader(new InputStreamReader(new ByteArrayInputStream(jsonSummaryContent.getBytes())));

    reader.beginObject();
    while (reader.hasNext()) {
      String name = reader.nextName();
      if (name.equals("jobs")) {
        reader.beginArray();

        int jobCount = 0;
        // Get more info for each job
        while (reader.hasNext()) {
          reader.beginObject();
          FuxiJob job = fuxiJobs.get(jobCount);
          while (reader.hasNext()) {
            String nameInJobs = reader.nextName();
            if (nameInJobs.equals("tasks")) {
              reader.beginObject();

              int taskCount = 0;
              // Get more info for each task
              while (reader.hasNext()) {
                String taskName = reader.nextName();
                FuxiTask task = job.tasks.get(taskCount);

                // Get the downstream tasks info
                reader.beginObject();
                while (reader.hasNext()) {
                  if (reader.nextName().equals("output_record_counts")) {
                    List<String> downTasks = new ArrayList<String>();
                    reader.beginObject();
                    while (reader.hasNext()) {
                      downTasks.add(reader.nextName());
                      reader.skipValue();
                    }
                    reader.endObject();
                    addUpAndDownTasks(job, task.name, downTasks);
                  } else {
                    reader.skipValue();
                  }
                }
                reader.endObject();
                taskCount++;
              }
              reader.endObject();
            } else {
              reader.skipValue();
            }
          }
          reader.endObject();
          jobCount++;
        }
        reader.endArray();
      } else {
        reader.skipValue();
      }
    }
    reader.endObject();
  }