[go] JSON 데이터 유니코드 처리하기
Go에서 JSON 데이터를 다룰 때 유니코드 문자가 포함된 문자열을 올바르게 처리하는 방법에 대해 알아보겠습니다.
1. JSON 데이터를 읽을 때 유니코드 디코딩
package main
import (
"encoding/json"
"fmt"
"log"
)
func main() {
str := `{"name": "한글", "age": 28}`
var data map[string]interface{}
err := json.Unmarshal([]byte(str), &data)
if err != nil {
log.Fatal(err)
}
fmt.Println(data["name"])
}
위의 예제에서 str
은 JSON 형식의 문자열이며 name
필드에는 “한글”이라는 유니코드 문자열이 포함되어 있습니다. json.Unmarshal
함수를 사용하여 JSON 데이터를 읽을 때 자동으로 유니코드 디코딩이 수행되므로, 출력 결과는 “한글”이 됩니다.
2. JSON 데이터를 쓸 때 유니코드 인코딩
package main
import (
"encoding/json"
"fmt"
)
func main() {
data := map[string]interface{}{
"name": "한글",
"age": 28,
}
res, err := json.Marshal(data)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(res))
}
위의 예제에서 data
는 유니코드 문자열을 포함하는 맵입니다. json.Marshal
함수를 사용하여 JSON 형식으로 데이터를 쓸 때 자동으로 유니코드 인코딩이 수행되므로, 출력 결과는 name
필드에 “한글”이 포함된 올바른 JSON 문자열이 됩니다.
결론
Go에서 JSON 데이터를 다룰 때 유니코드 문자를 올바르게 처리하기 위해서는 json.Unmarshal
함수를 사용하여 데이터를 읽을 때 자동으로 유니코드 디코딩이 수행되며, json.Marshal
함수를 사용하여 데이터를 쓸 때 자동으로 유니코드 인코딩이 수행됩니다.
이렇게 함으로써, Go 언어로 JSON 데이터를 다룰 때 유니코드 문자열을 올바르게 처리할 수 있습니다.
더 많은 정보는 공식 문서인 Encoding and Decoding JSON in Go를 참조하세요.