63 lines
917 B
Go
63 lines
917 B
Go
package jsonexample
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
type Person struct {
|
|
Name string `json:"name"`
|
|
Age int `json:"age"`
|
|
History []string `json:"history"`
|
|
}
|
|
|
|
func JsonParsingExample() {
|
|
obj := map[string]interface{}{
|
|
"name": "홍길동",
|
|
"age": 623,
|
|
"history": []string{
|
|
"1900-양반집을 털었다",
|
|
"1910-왕에게 잡혀감",
|
|
},
|
|
}
|
|
|
|
b, err := json.Marshal(obj)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(string(b))
|
|
|
|
obj2 := map[string]interface{}{}
|
|
err = json.Unmarshal(b, &obj2)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(obj2["age"])
|
|
|
|
p := Person{
|
|
Name: "Godopu2",
|
|
Age: 70,
|
|
History: []string{
|
|
"1900-양반집을 털었다",
|
|
"1910-왕에게 잡혀감",
|
|
},
|
|
}
|
|
b, err = json.Marshal(&p)
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(string(b))
|
|
|
|
var p2 Person
|
|
err = json.Unmarshal(b, &p2)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println(p2.Age)
|
|
}
|