Computer language and framework/GO
[GO] Golang json 사용하기
WhiteGoblin
2023. 1. 15. 09:37
반응형
요즘 들어서 다시 처음부터 공부하고 있습니다.
그러다 보니 자연스럽게 해야 하는 일들이 있어서 이렇게 정리하려고 합니다.
데이터를 주고 받을때 가장 많이 사용하는 형식중 json 형식을 사용하게 되는데 이러한 것을 사용하는 가장 기초적인 부분들을 정리 해보겠습니다.
아래 코드는 go1.19.4 darwin/arm64 에서 작성 되었습니다.
또한 chatGPT 에서 golang json 이라고 친 코드를 제가 조금 수정해서 첨부해 넣었습니다. ( ChatGPT 최고...)
package main
import (
"encoding/json"
"fmt"
"log"
"reflect"
)
type Person struct {
Name string
Age int
}
func main() {
jsonData := `{"Name":"John Doe","Age":30}`
var p Person
json.Unmarshal([]byte(jsonData), &p)
fmt.Println("p.Name =", p.Name)
fmt.Println("Type of p =", reflect.TypeOf(p))
result, err := json.Marshal(p)
if err != nil {
log.Println(err)
}
fmt.Println("result =", string(result))
fmt.Println("Type of result", reflect.TypeOf(result))
}
위 코드 처럼 우선 jsonData 를 strings 형태로 받아온다고 가정 하고
golang 에 내장되어 있는 encodig/json 패키지를 통해서 해당 strings 를 byte 형태로 변환 및 저장 하게 되었습니다.
- 순서
[문자열 -> json 으로]
1. strings 데이터 받아 오기
2. 해당 데이터에 맞는 struct 준비 하기
3. 데이터 byte 변환 및 unmarshal 하기.
4. 자유롭게 사용
[json -> 문자열로]
역순으로 다시 하면 될거 같습니다. ( 분해는 조립의 역순이듯이...)
위 코드를 사용하면
p.Name = John Doe
Type of p = main.Person
result = {"Name":"John Doe","Age":30}
Type of result []uint8
이런식으로 나오게 됩니다.
기초적인 지식이지만 나는 그냥 코드를 복붙해서 사용했기 때문에 정리 및 제대로 알기 위해서 이렇게 작성하게 되었습니다~
틀린 부분이 있으면 언제든지 알려 주시기 바랍니다~
반응형