Java:HttpEntity转为List

JerryXia 发表于 , 阅读 (19)

前言

继续之前的工作,获取Impala的接口信息后,将其转换为List<JavaBean>的形式,方便后续程序处理。

Code

删除大部分,留点主要的处理过程。

JavaBean

首先要对应一些java类,可以直接借鉴cm java api的model。

有三个类,其中TaskBase最重要。

import java.util.concurrent.TimeUnit;/** * Task信息实体类(和接口中获取的信息对应) * Created by Dante on 2016/3/25. */public class TaskBase {    private String queryId;    private String statement;    private String queryType;    private String queryState;    private String startTime;    private String endTime;    private String rowsProduced;    private String user;    private String detailsAvailable;    private String database;    private Long durationMillis;    private Long durationMinutes;   //此处有诡异    private Coordinator coordinator;    private Attributes attributes;}
import com.google.gson.annotations.SerializedName;/** * 从接口中获取到的Query信息Attributes实体类。 * query的部分信息 * Created by Dante on 2016/3/25. */public class Attributes {    @SerializedName("thread_storage_wait_time")    private String threadStorageWaitTime;    @SerializedName("session_id")    private String sessionId;    @SerializedName("planning_wait_time")    private String planningWaitTime;    @SerializedName("thread_total_time")    private String threadTotalTime;    @SerializedName("stats_missing")    private String statsMissing;    @SerializedName("thread_network_send_wait_time_percentage")    private String threadNetworkSendWaitTimePercentage;    @SerializedName("thread_cpu_time_percentage")    private String threadCpuTimePercentage;    @SerializedName("thread_network_receive_wait_time_percentage")    private String threadNetworkReceiveWaitTimePercentage;    @SerializedName("file_formats")    private String fileFormats;    @SerializedName("planning_wait_time_percentage")    private String planningWaitTimePercentage;    @SerializedName("client_fetch_wait_time")    private String clientFetchWaitTime;    @SerializedName("client_fetch_wait_time_percentage")    private String clientFetchWaitTimePercentage;    @SerializedName("pool")    private String pool;    @SerializedName("session_type")    private String sessionType;    @SerializedName("connected_user")    private String connectedUser;    @SerializedName("thread_network_receive_wait_time")    private String threadNetworkReceiveWaitTime;    @SerializedName("cm_cpu_milliseconds")    private String cmCpuMilliseconds;    @SerializedName("impala_version")    private String impalaVersion;    @SerializedName("thread_network_send_wait_time")    private String threadNetworkSendWaitTime;    @SerializedName("network_address")    private String networkAddress;    @SerializedName("query_status")    private String queryStatus;    @SerializedName("estimated_per_node_peak_memory")    private String estimatedPerNodePeakMemory;    @SerializedName("thread_storage_wait_time_percentage")    private String threadStorageWaitTimePercentage;    @SerializedName("thread_cpu_time")    private String threadCpuTime;}
/** * 从接口中获取到的Query信息Coordinator的实体类 * Coordinator的hostID * Created by Dante on 2016/3/25. */public class Coordinator {    private String hostId;    public String getHostId() {        return hostId;    }    public void setHostId(String hostId) {        this.hostId = hostId;    }