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

JSON 데이터는 자바에서 다루기 위해 JSON 라이브러리를 사용하여 파싱해야 합니다. 이 문서에서는 자바에서 JSON 데이터를 파싱하고, 특정 속성의 값의 총합을 구하는 방법을 알아보겠습니다.

JSON 데이터 파싱하기

JSON 데이터를 파싱하기 위해 org.json 라이브러리를 사용해보겠습니다. 먼저, Gradle을 통해 org.json 라이브러리를 프로젝트에 추가합니다.

dependencies {
    implementation 'org.json:json:20180813'
}

그리고 다음과 같은 JSON 데이터가 있다고 가정해봅시다.

{
    "data": [
        {
            "name": "John",
            "score": 80
        },
        {
            "name": "Sarah",
            "score": 90
        },
        {
            "name": "Tom",
            "score": 75
        }
    ]
}

이 JSON 데이터를 자바에서 파싱하기 위해 다음과 같은 코드를 작성해봅시다.

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

public class JsonDataParser {
    public static void main(String[] args) {
        String jsonData = "{ \"data\": [ { \"name\": \"John\", \"score\": 80 }, { \"name\": \"Sarah\", \"score\": 90 }, { \"name\": \"Tom\", \"score\": 75 } ] }";

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

        int sum = 0;
        for (int i = 0; i < data.length(); i++) {
            JSONObject obj = data.getJSONObject(i);
            int score = obj.getInt("score");
            sum += score;
        }

        System.out.println("총합: " + sum);
    }
}

위 코드에서 jsonData 변수에 JSON 데이터를 할당합니다. 그리고 JSONObject를 사용하여 JSON 객체로 파싱합니다. getJSONArray 메서드를 사용하여 “data” 속성을 가진 배열을 가져옵니다. 이후 배열의 각 요소를 순회하면서 “score” 속성의 값을 구하고 총합을 계산합니다.

위 코드를 실행하면 “총합: 245”가 출력될 것입니다.

참고 자료