Go入门笔记-6 Json使用

1、代码

// json.go
package main

import (
        "encoding/json"
        "fmt"
        "os"
)

type Student struct {
        Name string
        Age  int
}

type Class struct {
        Students []Student
}

func main() {
        var s Class
        str := `{"Students":[{"Name":"zs","Age":13},
            {"Name":"ls","Age":"2"}]}`

        json.Unmarshal([]byte(str), &s)
        fmt.Println(s)
        fmt.Println(s.Students[0].Name)

        fmt.Println(json.Marshal(s))
        b, _ := json.Marshal(s)
        fmt.Println(b)

        os.Stdout.Write(b)

}

2、执行结果

{[{zs 13} {ls 0}]}
zs
[123 34 83 116 117 100 101 110 116 115 34 58 91 123 34 78 97 109 101 34 58 34 122 115 34 44 34 65 103 101 34 58 49 51 125 44 123 34 78 97 109 101 34 58 34 108 115 34 44 34 65 103 101 34 58 48 125 93 125] <nil>
[123 34 83 116 117 100 101 110 116 115 34 58 91 123 34 78 97 109 101 34 58 34 122 115 34 44 34 65 103 101 34 58 49 51 125 44 123 34 78 97 109 101 34 58 34 108 115 34 44 34 65 103 101 34 58 48 125 93 125]
{"Students":[{"Name":"zs","Age":13},{"Name":"ls","Age":0}]}

3、总结

3.1如果使用整形,赋值字符串时,Unmarshar将是0  

3.2直接Println和取值再Println直接输出对象显示的都是ASCII码

3.3使用Stdout.Write可以直接输出对象