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
// 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;
}
}