How to Sort JSON Array from JSON Objects in Android?

前端 未结 5 1950
醉话见心
醉话见心 2020-12-10 19:25

I have a JSON array, and I want to sort it Depending on the name and too alphabetically. My Json is as follows.

[
    {
        \"UserID\": 77,
        \"Inv         


        
5条回答
  •  再見小時候
    2020-12-10 19:55

    // try this way i have gave demo code you have modify as per your requirement.
    
    public class MyActivity extends Activity {
    
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            try{
                JSONArray jsonArray = new JSONArray();
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("name","Haresh");
                JSONObject jsonObject1 = new JSONObject();
                jsonObject1.put("name","Akash");
                JSONObject jsonObject2 = new JSONObject();
                jsonObject2.put("name","Biraj");
                JSONObject jsonObject3 = new JSONObject();
                jsonObject3.put("name","Salim");
                JSONObject jsonObject4 = new JSONObject();
                jsonObject4.put("name","Saloni");
                jsonArray.put(jsonObject1);
                jsonArray.put(jsonObject);
                jsonArray.put(jsonObject3);
                jsonArray.put(jsonObject2);
                jsonArray.put(jsonObject4);
    
    
                ArrayList> list = (ArrayList>)toList(jsonArray);
                Collections.sort(list,new Comparator>() {
                    @Override
                    public int compare(HashMap stringStringHashMap, HashMap stringStringHashMap2) {
                        return stringStringHashMap.get("name").compareTo(stringStringHashMap2.get("name"));
                    }
                });
                for (HashMap row : list){
                    System.out.println("Row :"+row.get("name"));
                }
    
            }catch (Exception e){
                e.printStackTrace();
            }
    
    
        }
    
        private Object fromJson(Object json) throws JSONException {
            if (json == JSONObject.NULL) {
                return null;
            } else if (json instanceof JSONObject) {
                return jsonToMap((JSONObject) json);
            } else if (json instanceof JSONArray) {
                return toList((JSONArray) json);
            } else {
                return json;
            }
        }
    
        public Map jsonToMap(JSONObject object) throws JSONException {
            Map map = new HashMap();
            Iterator keys = object.keys();
            while (keys.hasNext()) {
                String key = (String) keys.next();
                map.put(key, fromJson(object.get(key)).toString());
            }
            return map;
        }
    
        @SuppressWarnings({ "rawtypes", "unchecked" })
        private List toList(JSONArray array) throws JSONException {
            List list = new ArrayList();
            int size = array.length();
            for (int i = 0; i < size; i++) {
                list.add(fromJson(array.get(i)));
            }
            return list;
        }
    
    
    }
    

提交回复
热议问题