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

golang json 切片

方一強2年前10瀏覽0評論

golang 是一種強類型語言,它內置了對 JSON 數據格式的支持。無論是在網絡傳輸數據、讀寫文件還是與數據庫交互等場景,JSON 都是極為常見的數據格式。而切片(slice)則是 golang 中的一種動態數組,與 JSON 數據格式的配合使用可以更加方便地對 JSON 數據進行處理。

package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
var persons []Person
jsonStr := `[{
"name": "Alice",
"age": 20
}, {
"name": "Bob",
"age": 30
}]`
err := json.Unmarshal([]byte(jsonStr), &persons)
if err != nil {
panic(err)
}
fmt.Println(persons)
}

上面的代碼解析了一個包含兩個 Person 對象的 JSON,通過 json.Unmarshal 函數將 JSON 字符串解析為一個 Person 結構體的切片。其中 json.Unmarshal 的第一個參數是一個字節數組,即 JSON 字符串;第二個參數是一個指向切片的指針,函數將把解析的數據保存到此切片中。

從輸出中可以看到 Person 對象被成功解析。如果想要修改 Person 對象的某個字段,并將其序列化為 JSON,也可以使用切片進行方便的修改。

func main() {
var persons []Person
jsonStr := `[{
"name": "Alice",
"age": 20
}, {
"name": "Bob",
"age": 30
}]`
err := json.Unmarshal([]byte(jsonStr), &persons)
if err != nil {
panic(err)
}
persons[0].Age = 21
newJsonStr, err := json.Marshal(persons)
if err != nil {
panic(err)
}
fmt.Println(string(newJsonStr))
}

上面的代碼將第一個 Person 的年齡改為 21,并且通過 json.Marshal 函數將修改后的切片序列化為 JSON 字符串。通過打印得到的結果可以看到,第一個 Person 的年齡已經被改變。

可以看到,使用 golang 的切片對 JSON 數據進行處理非常方便,能夠讓我們更加容易地對數據進行增、刪、改和查。