[go] JSON 데이터 마샬링과 언마샬링
이 게시물에서는 Go 언어에서 JSON 데이터의 마샬링과 언마샬링을 수행하는 방법에 대해 살펴보겠습니다.
1. JSON 관련 패키지 가져오기
Go에서 JSON 데이터를 다루기 위해서는 내장된 encoding/json
패키지를 사용해야 합니다.
import "encoding/json"
2. 구조체를 JSON으로 마샬링하기
구조체를 JSON 형식의 문자열로 변환하는 과정을 “마샬링”이라고 합니다. 이를 위해서는 json.Marshal
함수를 사용합니다.
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 30}
jsonData, err := json.Marshal(p)
if err != nil {
fmt.Println("에러 발생:", err)
return
}
fmt.Println(string(jsonData)) // {"Name":"Alice","Age":30}
3. JSON 데이터를 구조체로 언마샬링하기
JSON 형식의 문자열을 구조체로 변환하는 과정을 “언마샬링”이라고 합니다. 이를 위해서는 json.Unmarshal
함수를 사용합니다.
var p Person
jsonStr := `{"Name":"Bob","Age":25}`
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
fmt.Println("에러 발생:", err)
return
}
fmt.Println(p) // {Bob 25}
4. 사용자 정의 형식의 JSON 마샬링 및 언마샬링
encoding/json
패키지를 사용하여 사용자 정의 형식이나 복잡한 구조체에 대한 마샬링과 언마샬링을 수행할 수 있습니다. 공식 문서에서 자세한 정보를 확인할 수 있습니다.
Go 언어로 JSON 데이터의 마샬링과 언마샬링을 수행하는 방법에 대해 살펴봤습니다. JSON 데이터를 구조체로 변환하거나 구조체를 JSON 데이터로 변환하는 데 필요한 기초적인 개념을 이해할 수 있습니다.