table = POOL.getTable(ann_index);
rs = table.getScanner(scan);
int resultSum = 0;
for (Result res : rs) {
List<KeyValue> list = res.list();
for (KeyValue kv : list) {
if (resultSum == sum) {//因为每行有可能有多条数据,所以要手动过滤条数
break;
}
JSONObject obj = new JSONObject();
String[] key = new String(kv.getRow()).split(":");
obj.put("serviceId", key[0]);
obj.put("timestamp", Long.parseLong(key[1]));
obj.put("traceId", byteArray2Long(kv.getQualifier()));
obj.put("exInfo", new String(kv.getValue()));
array.add(obj);
resultSum++;
}
}
sortJsonArrayByDate(array,"timestamp");
private void sortJsonArrayByDate(JSONArray array,String dateName){
List<JSONObject> list = new ArrayList<JSONObject> ();
JSONObject jsonObj = null;
for (int i = 0; i < array.size(); i++) {
jsonObj = (JSONObject)array.get(i);
list.add(jsonObj);
}
//排序操作
JsonComparator pComparator = new JsonComparator(dateName);
Collections.sort(list, pComparator);
//把数据放回去
array.clear();
for (int i = 0; i < list.size(); i++) {
jsonObj = list.get(i);
array.add(jsonObj);
}
}