2015-07-03 86 views
-3

你好,請標記爲複製排序JSONArray空字符串,並以降序排列

之前看到的問題,我有一個喬恩陣列

[ 
{ 
"ID":"1324" 
"iname":"Abc", 
"icounts":"234", 
"ilikes":"098" 
}, 
{ 
"ID":"1224" 
"iname":"bcd", 
"icounts":"", //icounts has empty value 
"ilikes":"098" 
}, 
{ 
"ID":"1367" 
"iname":"Abc", 
"icounts":"28", 
"ilikes":"098" 
}, 
{ 
"ID":"1098" 
"iname":"Abc", 
"icounts":"", 
"ilikes":"098" 
}, 
{ 
"ID":"1444" 
"iname":"dfgbc", 
"icounts":"222", 
"ilikes":"098" 
}, 
{ 
"ID":"1411" 
"iname":"bwec", 
"icounts":"444", 
"ilikes":"9" 
} 

] 

我有「ICOUNT」值按遞減順序

對它進行排序
ArrayList<HashMap<String,String>> arrayList= ArrayList<HashMap<String,String>>; 
String jsonString = EntityUtils.toString(hres.getEntity()); // in jsonString i am storing json response 
JSONArray jarray = new JSONArray(jsonString); 
for (int i = 0 ; i <jarray.length();i++) 
{ 
JSONObject jobj = jarray.getJSONObject(i); 
HashMap<String,String> map = new HashMap<String,String>(); 
map.put("ID", jobj.getString("ID")); 

map.put("iname", jobj.getString("iname")); 
map.put("icount", jobj.getString("icount")); 
map.put("ilikes", jobj.getString("ilikes")); 
arrayList.add(map); 
Collections.sort(arrayList, new Comparator<HashMap<String, String>>() { 
    @Override 
public int compare(HashMap<String, String> lhs, HashMap<String, String> rhs) { 
    return lhs.get("icounts").compareTo(rhs.get("icounts")); 
    } 
}); 
} 

由於空字段compareTo不正確排序 所以我想要按降序排序。 建議請

+0

我不認爲你應該使用'HashMap'。你或許應該創建一個類爲您DATAS,與領域。然而從Raghu拉米·雷迪的效應初探似乎不錯。 – sonic

回答

1

添加邏輯來檢查ICOUNT價值和增加值「0」,如果它爲空或空字符串。 例子:

String icounts = jobj.getString("icount"); 

檢查這樣的:

if(icounts!=null && icounts.trim().length() >0) 
{ 
map.put("icount", jobj.getString("icount")); 
} 
else{ 
map.put("icount", "0"); 
} 

希望這有助於你