[go] Go에서 JSON 데이터 필터링 및 검색하기
Go 언어를 사용하여 JSON 데이터를 필터링하고 검색하는 방법에 대해 알아보겠습니다.
1. JSON 데이터 읽기
우선 Go에서 JSON 파일을 읽는 방법을 살펴보겠습니다. encoding/json
패키지를 사용하여 JSON 파일을 읽고, 데이터를 구조체로 파싱할 수 있습니다.
package main
import (
"encoding/json"
"fmt"
"os"
)
type Data struct {
Users []struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
} `json:"users"`
}
func main() {
file, err := os.Open("data.json")
if err != nil {
fmt.Println("Error opening JSON file:", err)
return
}
defer file.Close()
var data Data
err = json.NewDecoder(file).Decode(&data)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return
}
fmt.Printf("%+v\n", data)
}
2. JSON 데이터 필터링 및 검색
이제 Go로 읽어온 JSON 데이터를 필터링하고 검색하는 방법을 알아보겠습니다. 예를 들어, 이름이 “Alice”인 사용자를 찾는다고 가정해봅시다.
func filterByName(users []struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}, name string) []struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
} {
var filteredUsers []struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
for _, user := range users {
if user.Name == name {
filteredUsers = append(filteredUsers, user)
}
}
return filteredUsers
}
func main() {
// ... (이전 섹션에서 JSON 파일을 읽는 코드)
// "Alice" 이름을 가진 사용자 필터링
filtered := filterByName(data.Users, "Alice")
fmt.Printf("%+v\n", filtered)
}
결론
이것으로 Go에서 JSON 데이터를 필터링하고 검색하는 방법을 알아보았습니다. JSON 파일을 읽고 필요한 데이터를 구조체로 매핑하여 다양한 검색 및 필터링 기능을 구현할 수 있습니다.
관련 문서: Go JSON 패키지