[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 데이터로 변환하는 데 필요한 기초적인 개념을 이해할 수 있습니다.