[java] 자바에서 JSON 데이터의 중복값을 포함한 유일한 값 추출하기

JSON 데이터에서 중복된 값을 포함한 유일한 값만 추출하고 싶은 경우가 있을 수 있습니다. 이런 상황에서는 자바에서 JSON 값을 다루는 라이브러리를 사용하여 중복 값을 필터링하고 유일한 값을 추출할 수 있습니다.

JSON 데이터 예시

먼저 JSON 데이터의 예시를 살펴보겠습니다.

{
  "fruits": [
    {"name": "apple"},
    {"name": "banana"},
    {"name": "apple"},
    {"name": "orange"}
  ]
}

위의 예시 데이터에서는 “apple”이라는 값이 중복으로 포함되어 있습니다. 이 중복된 값을 필터링하고 유일한 값을 추출하는 방법을 알아보겠습니다.

Gson 라이브러리를 사용하여 중복 값 필터링하기

이 예시에서는 Gson 라이브러리를 사용하여 JSON 데이터를 처리하는 방법을 알아보겠습니다. Gson은 Google에서 제공하는 자바용 JSON 라이브러리로써 간편하게 JSON 데이터를 다룰 수 있습니다.

우선 Gson 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 아래의 의존성을 추가하면 됩니다.

<dependencies>
  <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.7</version>
  </dependency>
</dependencies>

이제 자바 코드에서 Gson 라이브러리를 사용하여 중복 값 필터링을 할 수 있습니다.

아래의 코드는 fruits 배열에서 중복 값을 필터링하여 유일한 값을 추출하는 예시입니다.

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class JsonDuplicateFilterExample {
    public static void main(String[] args) {
        String json = "{\"fruits\":[{\"name\":\"apple\"},{\"name\":\"banana\"},{\"name\":\"apple\"},{\"name\":\"orange\"}]}";

        // JSON 데이터를 자바 객체로 변환
        Gson gson = new Gson();
        Data data = gson.fromJson(json, Data.class);
        
        // 중복 값을 필터링하여 유일한 값 추출
        Set<String> uniqueFruits = new HashSet<>();
        List<Fruit> filteredFruits = new ArrayList<>();
        
        for (Fruit fruit : data.getFruits()) {
            if (uniqueFruits.add(fruit.getName())) {
                filteredFruits.add(fruit);
            }
        }
        
        // 결과 출력
        for (Fruit fruit : filteredFruits) {
            System.out.println(fruit.getName());
        }
    }
}

class Data {
    private List<Fruit> fruits;

    public List<Fruit> getFruits() {
        return fruits;
    }
}

class Fruit {
    private String name;

    public String getName() {
        return name;
    }
}

위의 예시 코드를 실행하면 다음과 같은 결과가 출력됩니다.

apple
banana
orange

위의 코드에서는 HashSet을 사용하여 이미 추가된 값은 중복으로 처리하지 않도록 하고, 이를 이용하여 필터링된 유일한 값만 추출하였습니다.

결론

이렇게 자바에서 JSON 데이터의 중복 값을 포함한 유일한 값만 추출하는 방법에 대해 알아보았습니다. Gson 라이브러리를 사용하여 JSON 데이터를 다루는데 많은 도움이 될 것입니다.

더 자세한 내용은 아래의 참고 자료를 참고하시기 바랍니다.

참고 자료