[java] 자바에서 JSON 데이터의 특정 속성 값 평균 구하기

문제

JSON 형식의 데이터에서 특정 속성의 값들의 평균을 계산하는 방법을 자바로 구현하고자 합니다.

해결 방법

자바에서 JSON 데이터를 다루기 위해 org.json 라이브러리를 사용할 수 있습니다. 이 라이브러리는 JSON 데이터를 파싱하고 조작할 수 있는 다양한 기능을 제공합니다.

다음은 JSON 데이터에서 특정 속성의 값을 추출하여 평균을 계산하는 예제 코드입니다.

import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;

public class JSONAverage {
    public static void main(String[] args) {
        String jsonData = "{ \"data\": [ { \"name\": \"John\", \"age\": 25 }, { \"name\": \"Emma\", \"age\": 30 }, { \"name\": \"Peter\", \"age\": 35 } ] }";

        JSONObject jsonObject = new JSONObject(jsonData);
        JSONArray dataArray = jsonObject.getJSONArray("data");

        List<Integer> ageList = new ArrayList<>();

        for (int i = 0; i < dataArray.length(); i++) {
            JSONObject dataObject = dataArray.getJSONObject(i);
            int age = dataObject.getInt("age");
            ageList.add(age);
        }

        int sum = 0;
        for (int age : ageList) {
            sum += age;
        }

        double average = (double) sum / ageList.size();

        System.out.println("Average age: " + average);
    }
}

위 코드는 JSON 형식의 데이터를 파싱하여 “data” 속성의 값들 중 “age” 속성의 값들을 추출하고, 이를 이용하여 평균을 계산하는 예제입니다.

먼저 org.json.JSONObjectorg.json.JSONArray를 임포트하여 JSON 데이터를 다루기 위한 클래스들을 사용합니다. 그리고 jsonData 변수에 JSON 데이터를 할당하고, JSONObject 클래스를 사용하여 해당 데이터를 파싱합니다.

다음으로 getJSONArray 메서드를 호출하여 “data” 속성의 값인 배열을 얻어옵니다. 이후 for 루프를 통해 배열의 각 요소에 접근하고, getInt 메서드를 사용하여 “age” 속성의 값을 추출하여 ageList 리스트에 추가합니다.

마지막으로 ageList 리스트의 합을 계산하고, 리스트의 크기로 나눠 평균을 구합니다. 이후 결과를 출력합니다.

위의 예제 코드를 실행하면 JSON 데이터에서 “age” 속성의 값들의 평균이 출력됩니다.

참고 자료