Go 언어 json 대하여 배워보기

오늘은 Go 언어의 json 읽고 쓰기에 대하여 작성하면서 배워보려 합니다.

package main
 
import (
    "encoding/json"
    "fmt"
)
 
// test struct
type test struct {
    Title   string
    Text    string
    Index   int 
}
 
func main() {
    s := test{"hello", "hello world, go!", 0}
    b, _ := json.Marshal(s)
    str := string(b)
    fmt.Println(str)
}

test라는 구조체를 만들어서 변수를 구현합니다.

해당 변수를 json으로 변환하기 위해 Marshal 함수를 이용해줍니다.

출력하기 위해 string으로 변환하고 출력해줍니다.

package main
 
import (
    "encoding/json"
    "fmt"
)

// test2 struct
type test2 struct {
    Title   string `json:"title"`
    Text    string `json:"txt"`
    Index   int `json:"idx"`
}
 
func main() {
    s2 := test2{"hello", "hello world, go!", 0}
    b2, _ := json.Marshal(s2)
    str2 := string(b2)
    fmt.Println(str2)
}

처음 예제와 비슷하지만, json에 표기될 키값의 이름을 바꿀 수 있습니다.

package main
 
import (
    "encoding/json"
    "fmt"
)
 
// test struct
type test struct {
    Title   string
    Text    string
    Index   int 
}

func main() {
    b3, _ := json.Marshal(test{"title", "hello world! go!",0})
    var str3 test
    json.Unmarshal(b3, &str3)
    fmt.Println(str3.Title, str3.Text, str3.Index)
}

읽어들인 json을 문자열로 해독해서 각각의 구조체의 필드로 데이터를 조회할 수 있습니다.

update : 10월 2일자로 오타를 수정하였습니다. 알려주셔서 감사합니다.

Written on September 27, 2018