[go] Go 언어의 JSON 처리

Go 언어는 JSON(JavaScript Object Notation) 데이터를 처리하는 데 매우 유용한 기능을 제공합니다. Go 언어의 표준 라이브러리에는 JSON 데이터를 쉽게 인코딩하고 디코딩하는 기능이 내장되어 있어서, JSON 데이터를 다루기 위한 별도의 라이브러리를 설치할 필요가 없습니다.

이번 글에서는 Go 언어의 JSON 패키지를 사용하여 JSON 데이터를 어떻게 다루는지에 대해 알아보겠습니다.

JSON 인코딩

Go 언어에서 구조체나 맵을 JSON 형식으로 인코딩하는 방법은 간단합니다. 다음은 JSON 형식으로 인코딩하는 예제 코드입니다.

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	person := Person{Name: "Alice", Age: 25}
	
	jsonData, err := json.Marshal(person)
	if err != nil {
		fmt.Println("JSON 인코딩 에러:", err)
		return
	}
	
	fmt.Println(string(jsonData))
}

위 코드를 실행하면 다음과 같은 JSON 데이터가 출력될 것입니다.

{"Name":"Alice","Age":25}

JSON 디코딩

반대로, JSON 데이터를 Go 언어의 구조체나 맵으로 디코딩하는 것도 매우 간단합니다. 다음은 JSON 데이터를 Go 구조체로 디코딩하는 예제 코드입니다.

package main

import (
	"encoding/json"
	"fmt"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	jsonData := []byte(`{"Name":"Bob","Age":30}`)
	
	var person Person
	err := json.Unmarshal(jsonData, &person)
	if err != nil {
		fmt.Println("JSON 디코딩 에러:", err)
		return
	}
	
	fmt.Println(person)
}

위 코드를 실행하면 다음과 같이 디코딩된 결과가 출력될 것입니다.

{Bob 30}

결론

Go 언어의 표준 라이브러리를 사용하여 JSON 데이터를 인코딩하고 디코딩하는 것은 매우 간단하고 효율적입니다. JSON 데이터를 다룰 때 추가적인 라이브러리를 사용할 필요 없이 내장된 기능만으로 충분히 처리할 수 있습니다.