[java] 자바에서 JSON 데이터의 특정 속성 값 필터링하여 새로운 JSON 객체 생성하기
자바에서 JSON 데이터를 다루는 것은 매우 일반적인 작업입니다. 때로는 원하는 특정 속성 값을 필터링하여 새로운 JSON 객체를 생성해야 할 수도 있습니다. 이 글에서는 이와 같은 작업을 수행하는 방법을 알아보겠습니다.
먼저, 종속성으로 org.json
라이브러리를 추가해야 합니다. 이 라이브러리를 사용하면 JSON 데이터를 쉽게 다룰 수 있습니다. 다음은 Maven을 사용하는 경우 pom.xml
파일에 종속성을 추가하는 방법입니다:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
이제 코드를 작성해 보겠습니다. 아래 예제에서는 입력으로 주어진 JSON 데이터에서 “name” 속성 값이 “John”인 객체들을 필터링하여 새로운 JSON 객체를 생성하는 예제입니다.
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonFilterExample {
public static void main(String[] args) {
String jsonStr = "{\"data\": [{\"name\":\"John\", \"age\":35}, {\"name\":\"Jane\", \"age\":28}, {\"name\":\"Mike\", \"age\":42}]}";
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray filteredArr = new JSONArray();
JSONArray dataArr = jsonObj.getJSONArray("data");
for (int i = 0; i < dataArr.length(); i++) {
JSONObject obj = dataArr.getJSONObject(i);
if (obj.getString("name").equals("John")) {
filteredArr.put(obj);
}
}
JSONObject filteredJson = new JSONObject();
filteredJson.put("filteredData", filteredArr);
System.out.println(filteredJson.toString());
}
}
위의 코드에서는 주어진 JSON 문자열을 JSONObject
로 파싱하여 입력 데이터로 사용합니다. 그런 다음 JSONArray
로부터 “data” 속성 값을 가져옵니다. 반복문을 사용하여 “data” 배열의 각 요소를 순회하면서 “name” 속성 값을 확인합니다. “John”인 경우에만 filteredArr
에 추가합니다. 마지막으로 filteredArr
를 filteredJson
객체에 추가하고, 결과를 출력합니다.
이 예제를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
{"filteredData":[{"name":"John","age":35}]}
이와 같이 자바에서 JSON 데이터의 특정 속성 값을 필터링하여 새로운 JSON 객체를 생성할 수 있습니다. org.json
라이브러리를 사용하면 JSON 데이터를 쉽게 조작할 수 있으므로, 해당 라이브러리를 활용하는 것이 좋습니다.