[go] Go에서 JSON 객체를 구조체로 변환하기
Go 언어는 JSON 데이터를 구조체로 변환하거나 구조체를 JSON으로 직렬화하는 기능을 제공합니다. 이 기능을 사용하면 JSON 데이터와 Go 프로그램 간에 쉽게 데이터를 변환하고 처리할 수 있습니다.
JSON을 구조체로 변환하기
JSON 데이터를 Go의 구조체로 변환하려면 encoding/json
패키지를 사용합니다. 아래는 간단한 JSON 데이터를 Go의 구조체로 변환하는 예제입니다.
- 먼저 JSON 데이터를 담을 구조체를 정의합니다.
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
- 다음으로 JSON 데이터를 읽어와 구조체로 변환합니다.
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonStr := `{"name":"Alice","age":25}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("JSON 파싱 오류:", err)
return
}
fmt.Println("이름:", person.Name)
fmt.Println("나이:", person.Age)
}
위의 예제에서 json.Unmarshal
함수를 사용하여 JSON 데이터를 구조체로 변환했습니다.
구조체를 JSON으로 직렬화하기
구조체를 JSON으로 직렬화하려면 다음과 같이 json.Marshal
함수를 사용합니다.
func main() {
person := Person{Name: "Bob", Age: 30}
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("JSON 직렬화 오류:", err)
return
}
fmt.Println(string(jsonData))
}
위 코드는 json.Marshal
함수를 사용하여 구조체를 JSON으로 직렬화합니다.
이제 Go에서 JSON 데이터를 구조체로 변환하고 구조체를 JSON으로 직렬화하는 방법을 알게 되었습니다. 이러한 기능을 통해 Go 언어로 JSON 데이터를 쉽게 처리할 수 있습니다.