[go] JSON 데이터 필터링 및 검색하기

GO 언어에서 JSON 데이터를 필터링하고 검색하는 작업은 매우 유용합니다. 이를 통해 대량의 데이터에서 특정 조건을 충족하는 항목을 빠르게 찾거나 원하는 형식으로 데이터를 변환할 수 있습니다.

이번 블로그에서는 GO 언어에서 JSON 데이터를 필터링하고 검색하는 방법에 대해 알아보겠습니다.

JSON 데이터 불러오기

GO 언어에서 JSON 데이터를 다루기 위해서는 먼저 해당 데이터를 불러와야 합니다. 아래는 간단한 예제 코드입니다.

package main

import (
	"encoding/json"
	"fmt"
	"os"
)

type Record struct {
	Name  string
	Age   int
	City  string
}

func main() {
	file, err := os.Open("data.json")
	if err != nil {
		fmt.Println("Error opening JSON file:", err)
		return
	}
	defer file.Close()

	var data []Record
	err = json.NewDecoder(file).Decode(&data)
	if err != nil {
		fmt.Println("Error decoding JSON:", err)
		return
	}

	fmt.Println(data)
}

위의 예제는 Record라는 구조체를 정의하고, data.json 파일로부터 JSON 데이터를 읽어와 Record 형식으로 파싱하는 방법을 보여줍니다.

JSON 데이터 필터링하기

특정 조건을 만족하는 JSON 데이터를 필터링하기 위해 Go 언어에서는 for 반복문과 if 문을 활용할 수 있습니다. 아래는 나이가 30 이상인 데이터만 필터링하는 예제 코드입니다.

func filterByAge(data []Record) []Record {
	var filteredData []Record
	for _, d := range data {
		if d.Age >= 30 {
			filteredData = append(filteredData, d)
		}
	}
	return filteredData
}

위의 코드는 filterByAge 함수를 통해 나이가 30 이상인 데이터만 필터링합니다.

JSON 데이터 검색하기

특정 조건을 만족하는 데이터를 검색하기 위해서는 동일하게 for 반복문과 if 문을 사용할 수 있습니다.

func searchByName(data []Record, name string) []Record {
	var searchResult []Record
	for _, d := range data {
		if d.Name == name {
			searchResult = append(searchResult, d)
		}
	}
	return searchResult
}

위의 코드는 searchByName 함수를 통해 이름이 특정 값과 일치하는 데이터를 검색합니다.

결론

GO 언어에서는 JSON 데이터를 필터링하고 검색할 수 있는 강력한 기능을 제공합니다. 위에서 제시한 방법을 응용하여 다양한 조건에 맞게 데이터를 처리할 수 있으며, 이는 데이터 분석 및 가공 작업에 매우 유용할 것입니다.

이상으로 GO 언어에서 JSON 데이터를 필터링하고 검색하는 방법에 대한 블로그 포스트를 마치도록 하겠습니다. 감사합니다!