如何在Android的排序JSONArray [英] How to sort JSONArray in android
问题描述
如何用升序和Android上降其标签名称进行排序JSONArray。
在我的应用我有类似下面的JSON和需要显示的数据根据用户的选择(通过user_ID的标签升序排序或降序)。我已解析的JSON如下:
的JSONObject mObject =新的JSONObject(JSONResponse);
字符串commentsVal = mObject.getString(信息);
字符串resultVal = mObject.getString(结果);
JSONArray resultArray =新JSONArray(resultVal);
INT resultSize = resultArray.length();
的for(int i = 0; I< resultArray.length();我++){
JSONObject的resultObj = resultArray.getJSONObject(I)
resultObj.getString(COMMENT_ID);
.....
}
..............
这是我的JSON响应:
{
成功:1,
消息:一些信息,
结果:
{
COMMENT_ID:43906,
comp_id:116725,
USER_ID:48322,
同意:0
.....
回复:[...]
},
{
COMMENT_ID:43905,
comp_id:116725,
USER_ID:48248,
同意:0
.......
回复:[...]
}
]}
我所需要的结果JSON Array由USER_ID标记名称排序在解析,如何做到这一点在Android中?
公共静态JSONArray sortJsonArray(JSONArray数组){
清单<&JSONObject的GT; jsons =新的ArrayList<&JSONObject的GT;();
的for(int i = 0; I< array.length();我++){
jsons.add(array.getJSONObject(I));
}
Collections.sort(jsons,新的比较<&JSONObject的GT;(){
@覆盖
公众诠释比较(LHS的JSONObject,RHS的JSONObject){
串盖子= lhs.getString(COMMENT_ID);
字符串摆脱= rhs.getString(COMMENT_ID);
//在这里,你可以解析字符串ID为整数,然后比较。
返回lid.compareTo(RID);
}
});
返回新JSONArray(jsons);
}
这件code的可以返回一个排序的JSONArray,但我还是建议你解析的JSONObject到您自己的数据bean,然后做对他们的排序。
How to sort JSONArray by its Tag name with ascending and descending on android.
In my application i have a JSON like the following and need to display the data according to users option(sorting by user_id tag in ascending or descending order). I have parsed the JSON as the following:
JSONObject mObject = new JSONObject(JSONResponse);
String commentsVal = mObject.getString("message");
String resultVal = mObject.getString("result");
JSONArray resultArray = new JSONArray(resultVal);
int resultSize = resultArray.length();
for (int i = 0; i < resultArray.length(); i++) {
JSONObject resultObj = resultArray.getJSONObject(i);
resultObj.getString("comment_id");
.....
}
..............
and this is my JSON response:
{
"success": 1,
"message": "some message",
"result": [
{
"comment_id": "43906",
"comp_id": "116725",
"user_id": "48322",
"agree": "0",
.....
"replies": [....]
},
{
"comment_id": "43905",
"comp_id": "116725",
"user_id": "48248",
"agree": "0",
.......
"replies": [...]
}
]
}
I need the "result" JSON Array sorted by the "user_id" tag name while parsing, how to do it in Android?
public static JSONArray sortJsonArray(JSONArray array) {
List<JSONObject> jsons = new ArrayList<JSONObject>();
for (int i = 0; i < array.length(); i++) {
jsons.add(array.getJSONObject(i));
}
Collections.sort(jsons, new Comparator<JSONObject>() {
@Override
public int compare(JSONObject lhs, JSONObject rhs) {
String lid = lhs.getString("comment_id");
String rid = rhs.getString("comment_id");
// Here you could parse string id to integer and then compare.
return lid.compareTo(rid);
}
});
return new JSONArray(jsons);
}
This piece of code could return a sorted JSONArray, but i still recommend you to parse JSONObject to your own data beans, and then do the sorting on them.
这篇关于如何在Android的排序JSONArray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!