Go 언어는 JSON 데이터를 다루는 것이 상당히 쉽습니다. 여러분의 프로그램에서 JSON 데이터를 파싱하고 가공하는 과정이 간단하고 편리합니다. 하지만 때로는 JSON 데이터의 특정 유형을 다른 유형으로 변환해야 할 수도 있습니다. 예를 들어, 문자열로 표현된 숫자를 숫자 데이터 유형으로 변환하거나, JSON 데이터의 특정 필드를 사용자 정의한 구조체로 매핑해야 할 수 있습니다.
이번 글에서는 Go 언어에서 JSON 데이터를 특정 유형으로 변환하는 방법에 대해 알아보겠습니다.
1. JSON 데이터 파싱하기
먼저, JSON 데이터를 파싱하여 Go에서 사용하기 쉬운 형태로 가져와야 합니다. 이를 위해 Go의 encoding/json
패키지를 사용할 수 있습니다. 아래의 예제 코드는 json.Unmarshal
을 사용하여 JSON 데이터를 Go의 map 형식으로 파싱하는 방법을 보여줍니다.
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonData := []byte(`{"name":"John","age":30,"city":"New York"}`)
var data map[string]interface{}
err := json.Unmarshal(jsonData, &data)
if err != nil {
fmt.Println("Error parsing JSON:", err)
return
}
fmt.Println(data)
}
2. JSON 데이터 유형 변환하기
이제 JSON 데이터를 파싱했으니, 필요에 따라 데이터의 유형을 변환할 수 있습니다. 예를 들어, JSON 데이터의 특정 필드가 문자열인데 이를 숫자로 변환하고 싶을 때 등의 경우입니다. 아래의 예제 코드는 이를 수행하는 방법을 보여줍니다.
ageStr := data["age"].(string)
age, err := strconv.Atoi(ageStr)
if err != nil {
fmt.Println("Error converting age to integer:", err)
return
}
fmt.Println("Age:", age)
3. JSON 데이터 필드 매핑하기
때로는 JSON 데이터의 특정 필드를 사용자 정의한 구조체로 매핑해야 할 수도 있습니다. 아래의 예제 코드는 JSON 데이터를 Go 구조체로 매핑하는 방법을 보여줍니다.
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
City string `json:"city"`
}
var personData Person
err = json.Unmarshal(jsonData, &personData)
if err != nil {
fmt.Println("Error parsing JSON into struct:", err)
return
}
fmt.Println("Person:", personData)
결론
Go 언어는 JSON 데이터를 다루는 데 매우 유용한 기능을 제공합니다. 이를 활용하여 JSON 데이터를 파싱하고 필요에 따라 다른 데이터 유형으로 변환하거나 구조체로 매핑하는 등의 작업을 손쉽게 수행할 수 있습니다. JSON 데이터를 다루는 과정에서 발생하는 각종 상황에 유연하게 대처할 수 있는 능력은 Go로 개발한 프로그램을 효과적으로 만드는 데 도움이 될 것입니다.
참고 문헌: Go 언어 공식 문서
이상으로 Go에서 JSON 데이터 유형 변환하기에 대해 알아보았습니다. 부디 여러분의 프로그램 개발에 도움이 되길 바랍니다. 감사합니다.