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

JSON 형식의 데이터에서 특정 속성의 최대값을 구하는 방법에 대해 알아보겠습니다. 자바에서는 JSON 데이터를 다루기 위해 여러 라이브러리가 있지만, 이 예시에서는 “org.json” 라이브러리를 사용하도록 하겠습니다.

1. JSON 데이터 준비

먼저, JSON 형식의 데이터를 준비해야 합니다. 예시로 아래와 같은 JSON 데이터를 사용하겠습니다.

[
    {
        "name": "John",
        "age": 20,
        "score": 80
    },
    {
        "name": "Sarah",
        "age": 25,
        "score": 90
    },
    {
        "name": "Mike",
        "age": 22,
        "score": 95
    }
]

위 데이터는 사용자의 이름, 나이 및 점수를 갖고 있습니다.

2. JSON 데이터 파싱 및 최대값 구하기

이제 자바 코드를 사용하여 JSON 데이터를 파싱하고 특정 속성의 최대값을 구하는 과정을 살펴보겠습니다.

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class MaxValueFromJSON {
    public static void main(String[] args) {
        String jsonString = "[{\"name\":\"John\",\"age\":20,\"score\":80},{\"name\":\"Sarah\",\"age\":25,\"score\":90},{\"name\":\"Mike\",\"age\":22,\"score\":95}]";

        try {
            JSONArray jsonArray = new JSONArray(jsonString);

            int maxScore = Integer.MIN_VALUE;

            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                int score = jsonObject.getInt("score");

                if (score > maxScore) {
                    maxScore = score;
                }
            }

            System.out.println("최대 점수: " + maxScore);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서는 org.json 라이브러리의 JSONArrayJSONObject 클래스를 사용하여 JSON 데이터를 파싱합니다. 각 객체의 “score” 속성을 비교하여 최대값을 찾습니다.

최대값을 찾기 위해 우선 maxScore 변수를 Integer.MIN_VALUE로 초기화합니다. JSONArray의 각 요소에 대해 getJSONObject() 메소드를 사용하여 JSON 객체를 가져온 다음, “score” 속성의 값을 가져와 maxScore와 비교합니다. 더 큰 값이라면 maxScore를 업데이트합니다.

3. 실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

최대 점수: 95

JSON 데이터에서 “score” 속성의 최대값인 95를 출력합니다.

참고 자료