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 데이터를 필터링하고 검색하는 방법에 대한 블로그 포스트를 마치도록 하겠습니다. 감사합니다!