Java:HttpEntity转为List
前言
继续之前的工作,获取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; }