[go] go 언어에서의 플래그 값을 다루는 JSON 처리 방법

Golang은 데이터 구조를 다루는 데 있어 효율적이고 강력한 언어입니다. JSON은 데이터 교환을 위해 널리 사용되는 형식이며, Golang에서는 이를 쉽게 다룰 수 있습니다. 이 글에서는 Golang에서 JSON을 다루는 방법과 플래그 값을 처리하는 방법에 대해 알아보겠습니다.

JSON 다루기

Golang의 encoding/json 패키지를 사용하여 JSON 데이터를 다룰 수 있습니다. 아래 예제는 JSON 데이터를 읽고 쓰는 방법을 보여줍니다.

먼저, 다음과 같은 구조체를 정의합니다.

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

다음으로, JSON을 읽는 방법은 다음과 같습니다.

import (
	"encoding/json"
	"fmt"
)

func main() {
	jsonData := []byte(`{"name":"John","age":30}`)
	var person Person
	err := json.Unmarshal(jsonData, &person)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("Name:", person.Name)
	fmt.Println("Age:", person.Age)
}

JSON을 쓰는 방법은 다음과 같습니다.

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

플래그 값 다루기

Golang에서는 flag 패키지를 사용하여 명령행 플래그 값을 다룰 수 있습니다. 아래 예제는 플래그 값을 처리하는 방법을 보여줍니다.

import (
	"flag"
	"fmt"
)

func main() {
	var name string
	var age int
	flag.StringVar(&name, "name", "John", "The name of the person")
	flag.IntVar(&age, "age", 30, "The age of the person")
	flag.Parse()

	fmt.Println("Name:", name)
	fmt.Println("Age:", age)
}

위 예제에서 flag.StringVarflag.IntVar 함수를 사용하여 문자열 및 정수형 플래그 값을 정의하고, flag.Parse를 통해 플래그 값을 파싱합니다.

이제 Golang에서 JSON 및 플래그 값을 다루는 방법에 대해 알아보았습니다. 이러한 기능을 활용하여 데이터를 효율적으로 다룰 수 있습니다.

더 많은 정보는 Golang 공식 문서를 참고하세요.