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();
}