1.json是跨平台.跨語言的數據交換語言
JSON (JavaScript Object Notation)是一種比XML更輕量級的數據交換格式,在易於人們閱讀和編寫的同時,也易於程序解析和生成。盡管JSON是JavaScript的一個子集,但JSON采用完全獨立於編程語言的文本格式,且表現為鍵/值對集合的文本描述形式(類似一些編程語言中的字典結構),這使它成為較為理想的、跨平台、跨語言的數據交換語言。
package main
import (
"encoding/json"
"fmt"
)
//通過結構體生成json 文本,其成員變量名必須大寫
type People struct {
//由於結構體生成json文本成員變量必須大寫,可以使用struct_tag來二次編碼,此時可以使用小寫
Name string `json:"name"`
Subject []string
Isok bool `json:", string"` //轉換成字符串類型輸出
Price float64 `json:"-"` //不打印
} //這時輸出的成員變量就是小寫
func main() {
p1 := People{"steven", []string{"C++", "Go", "Python"}, true, 66.66}
//編碼
res, err := json.Marshal(p1)
if err != nil {
fmt.Println("err=", err)
return
}
//fmt.Println(res)//打印的是[]byte格式
fmt.Println(string(res)) //轉換成string類型
//格式化編碼,使結構更加清晰
res1, err1 := json.MarshalIndent(p1, "", " ") //第二個參數是空,第三個是縮進
if err != nil {
fmt.Println("err1=", err1)
return
}
fmt.Println(string(res1))
}