如何从Android中的JSON对象排序JSON数组?

我有一个JSON数组,我想根据名称和字母顺序对其进行排序。我的Json如下。

[

{

"UserID": 77,

"InvID": 333,

"Email": "sumeetssm@gmail.com",

"Phone": "",

"Name": "Summet",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 334,

"Email": "amit@testt.com",

"Phone": "",

"Name": "Amit",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 3,

"InvID": 335,

"Email": "amitesh@yahoo.com",

"Phone": "",

"Name": "Amitesh",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 336,

"Email": "foobar@test.com",

"Phone": "",

"Name": "FOO",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 337,

"Email": "krazy.lance@gmail.com",

"Phone": "",

"Name": "Krazy",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 1,

"InvID": 338,

"Email": "test@yahoo.com",

"Phone": "",

"Name": "Test",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 339,

"Email": "maktest@yahoo.com",

"Phone": "",

"Name": " ",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 340,

"Email": "Sam@rediff.com",

"Phone": "",

"Name": "SAM",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 101,

"InvID": 343,

"Email": "anurag@yahoo.com",

"Phone": "",

"Name": "Anurag",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 95,

"InvID": 379,

"Email": "s@s.com",

"Phone": "",

"Name": "S",

"Company": "",

"Date": "2014-01-14T00:00:00"

},

{

"UserID": 0,

"InvID": 428,

"Email": "sumeetssm@yahoo.com",

"Phone": "",

"Name": "Summet",

"Company": "",

"Date": "2014-01-16T00:00:00"

},

{

"UserID": 4,

"InvID": 494,

"Email": "sameer@iconnectgroup.com",

"Phone": "",

"Name": "Sameer P",

"Company": "",

"Date": "2014-01-21T00:00:00"

},

{

"UserID": 85,

"InvID": 507,

"Email": "jonny@dep.com",

"Phone": "9404988188",

"Name": "Jonny Dep",

"Company": "Iconnect",

"Date": "2014-01-22T00:00:00"

}

]

如您所见,我有一个键值“名称”,因此我得到了尊敬的名称。我想完全基于该名称对Json数组进行排序,并且也按字母顺序排序。

回答:

转换JSONArrayArraylist<JSONBbject>并使用集合对您的数组列表进行排序

例如 :

ArrayList<JSONObject> array = new ArrayList<JSONObject>();

JSONArray jsonArray = new JSONArray();

for (int i = 0; i < jsonArray.length(); i++) {

try {

array.add(jsonArray.getJSONObject(i));

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

Collections.sort(array, new Comparator<JSONObject>() {

@Override

public int compare(JSONObject lhs, JSONObject rhs) {

// TODO Auto-generated method stub

try {

return (lhs.getString("Name").toLowerCase().compareTo(rhs.getString("Name").toLowerCase()));

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return 0;

}

}

});

以上是 如何从Android中的JSON对象排序JSON数组? 的全部内容, 来源链接: utcz.com/qa/409099.html

回到顶部