[go] Go 언어의 데이터 구조를 인코딩하는 방법

Go 언어에서 데이터를 인코딩하고 디코딩하는 것은 JSON, XML 또는 직렬화된 데이터와 같은 다른 형식으로 데이터 구조를 전송하고 저장하는 데 중요한 역할을 합니다. Go 언어는 표준 라이브러리에 encoding/json, encoding/xml, encoding/gob 및 기타 패키지를 제공하여 데이터를 다양한 형식으로 인코딩하고 디코딩할 수 있습니다.

JSON 인코딩 및 디코딩

Go 언어에서 JSON 형식으로 데이터를 인코딩하려면 encoding/json 패키지를 사용합니다.

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

func main() {
	person := Person{Name: "Alice", Age: 30}
	jsonData, _ := json.Marshal(person)
	fmt.Println(string(jsonData)) // {"name":"Alice","age":30}

	var newPerson Person
	json.Unmarshal(jsonData, &newPerson)
	fmt.Println(newPerson) // {Alice 30}
}

XML 인코딩 및 디코딩

XML 형식으로 데이터를 인코딩하려면 encoding/xml 패키지를 사용할 수 있습니다. 이 패키지를 사용하여 데이터를 XML 형식으로 인코딩하고 디코딩하는 방법은 JSON과 유사합니다.

직렬화된 데이터의 인코딩 및 디코딩

직렬화된 데이터를 인코딩하고 디코딩하려면 encoding/gob 패키지를 사용할 수 있습니다. 이 패키지는 Go의 내부 표현을 사용하여 데이터를 직렬화하고 역직렬화합니다.

마치며

Go 언어는 데이터를 여러 다른 형식으로 인코딩하고 디코딩하는 기능을 강력하게 지원합니다. 이러한 표준 라이브러리를 사용하여 다른 시스템과의 상호 작용 및 데이터 저장에 활용할 수 있습니다.

관련 문서: Go 언어 JSON 인코딩/디코딩, Go 언어 XML 인코딩/디코딩, Go 언어 Gob 인코딩/디코딩