[go] Go에서 JSON 객체를 구조체로 변환하기

Go 언어는 JSON 데이터를 구조체로 변환하거나 구조체를 JSON으로 직렬화하는 기능을 제공합니다. 이 기능을 사용하면 JSON 데이터와 Go 프로그램 간에 쉽게 데이터를 변환하고 처리할 수 있습니다.

JSON을 구조체로 변환하기

JSON 데이터를 Go의 구조체로 변환하려면 encoding/json 패키지를 사용합니다. 아래는 간단한 JSON 데이터를 Go의 구조체로 변환하는 예제입니다.

  1. 먼저 JSON 데이터를 담을 구조체를 정의합니다.
type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
  1. 다음으로 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 데이터를 쉽게 처리할 수 있습니다.

참고 자료