欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go json

夏志豪2年前8瀏覽0評論

Go語言能夠輕松地生成和解析JSON數(shù)據(jù)。JSON是一種輕量級數(shù)據(jù)格式,可用于數(shù)據(jù)交換。

//生成JSON
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
p := Person{Name: "Tom", Age: 20}
b, err := json.Marshal(p)
if err != nil {
fmt.Println("json error:", err)
}
fmt.Println(string(b))
}

上述代碼中,使用Marshal函數(shù)生成JSON。json.Marshal返回字節(jié)切片,可以使用string()函數(shù)將其轉(zhuǎn)換為字符串。結(jié)果如下:

{"name":"Tom","age":20}

Parse函數(shù)用于解析JSON數(shù)據(jù)為結(jié)構(gòu)體。注意,結(jié)構(gòu)體中的字段必須是導(dǎo)出的,即首字母大寫。

//解析JSON
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
str := `{"name":"Tom","age":20}`
var p Person
err := json.Unmarshal([]byte(str), &p)
if err != nil {
fmt.Println("json error:", err)
}
fmt.Println(p)
}

上述代碼中,使用Unmarshal函數(shù)解析JSON。字節(jié)切片必須傳遞給Unmarshal函數(shù),并且必須使用&將p變量作為指針傳遞。結(jié)果如下:

{Tom 20}

可以使用MarshalIndent函數(shù)生成JSON,以便更好地閱讀。此函數(shù)還允許指定縮進(jìn)量。

//生成格式化的JSON
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
p := Person{Name: "Tom", Age: 20}
b, err := json.MarshalIndent(p, "", "  ")
if err != nil {
fmt.Println("json error:", err)
}
fmt.Println(string(b))
}

上述代碼中,使用MarshalIndent函數(shù)產(chǎn)生縮進(jìn)的JSON。第二個(gè)參數(shù)為空字符串,用于指定每個(gè)級別的縮進(jìn)字符串。第三個(gè)參數(shù)是一個(gè)字符串,用于指定縮進(jìn)字符串的數(shù)目。結(jié)果如下:

{
"name": "Tom",
"age": 20
}