2015-07-03 90 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"); 
} 

希望这有助于你