Notice
Recent Posts
Recent Comments
Link
투케이2K
272. (AndroidStudio/android/java) jsonArray jsonObject 형태로 저장된 데이터 특정 json key 값 기준으로 정렬 실시 본문
Android
272. (AndroidStudio/android/java) jsonArray jsonObject 형태로 저장된 데이터 특정 json key 값 기준으로 정렬 실시
투케이2K 2022. 2. 24. 15:44[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
public void testMain(){
try {
// [초기 jsonArray 객체 생성 실시]
JSONArray jsonArray = new JSONArray();
// [jsonObj 데이터 생성 실시]
JSONObject jsonObject_1 = new JSONObject();
jsonObject_1.put("key_1", "value_1");
jsonObject_1.put("step", 1);
JSONObject jsonObject_3 = new JSONObject();
jsonObject_3.put("key_3", "value_3");
jsonObject_3.put("step", 3);
JSONObject jsonObject_2 = new JSONObject();
jsonObject_2.put("key_2", "value_2");
jsonObject_2.put("step", 2);
// [jsonArray 배열에 jsonObj 데이터 삽입 실시]
jsonArray.put(jsonObject_1);
jsonArray.put(jsonObject_3);
jsonArray.put(jsonObject_2);
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[testMain >> 초기 jsonArray 데이터 확인]");
Log.i("","\n"+"[jsonArray :: "+jsonArray.toString()+"]");
Log.d("//===========//","================================================");
Log.i("---","---");
// [jsonArray >> List 에 담기 수행 실시]
List<JSONObject> copyList = new ArrayList<JSONObject>();
for (int i=0; i<jsonArray.length(); i++){
copyList.add(jsonArray.getJSONObject(i)); // list 에 삽입 실시
}
// [Collections 을 사용해서 List 배열 데이터 정렬 실시]
Collections.sort( copyList , new Comparator<JSONObject>() {
private static final String KEY = "step"; // TODO [정렬하려는 jsonObject key]
@Override
public int compare(JSONObject a, JSONObject b) {
// TODO [정수값 value 기준 정렬]
int value_A = 0;
int value_B = 0;
// TODO [문자열값 value 기준 정렬]
// String value_A = "";
// String value_B = "";
try {
// TODO [정수값 value 기준 정렬]
value_A = Integer.parseInt(a.getString(KEY)); // [정렬하려는 key 지정]
value_B = Integer.parseInt(b.getString(KEY)); // [정렬하려는 key 지정]
// TODO [문자열값 value 기준 정렬]
// value_A = (String) a.get(KEY); // [정렬하려는 key 지정]
// value_B = (String) b.get(KEY); // [정렬하려는 key 지정]
}
catch (JSONException e) {
e.printStackTrace();
}
// TODO [정수값 value 기준 정렬]
return Integer.compare(value_A, value_B);
// TODO [문자열값 value 기준 정렬]
//return value_A.compareTo(value_B);
}
});
// [정렬된 List 를 다시 jsonArray 에 담기 실시]
JSONArray sortArray = new JSONArray(copyList);
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[testMain >> 정렬 jsonArray 데이터 확인]");
Log.i("","\n"+"[sortArray :: "+sortArray.toString()+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
}
catch (Exception e){
e.printStackTrace();
}
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments