色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go json 循環輸出

錢多多2年前10瀏覽0評論

將數據序列化為JSON格式能夠方便地在不同系統之間進行數據交換,Go語言提供了非常豐富的處理JSON的函數和方法。

在Go中,使用`json.Marshal()`函數將數據序列化為JSON格式,如下代碼示例:

package main
import (
"encoding/json"
"fmt"
)
func main() {
type User struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
users := []User{
{"Lucy", 18},
{"Tom", 22},
{"Jack", 30},
}
data, err := json.Marshal(users)
if err != nil {
fmt.Println("json.Marshal failed:", err)
return
}
fmt.Println(string(data))
}

上述代碼中,定義了一個名為`User`的結構體類型,其中聲明了兩個字段`Name`和`Age`,并通過`json`包注釋為對應的JSON字段名稱。

接著,定義了一個`users`變量,其值為一個`User`類型的切片。調用`json.Marshal()`函數對`users`進行JSON序列化,并將結果打印至終端進行查看。

如果需要循環遍歷JSON格式的數據,可以使用`json.Unmarshal()`函數將JSON反序列化為Go語言中的數據結構,然后進行遍歷操作。下面是一個示例:

package main
import (
"encoding/json"
"fmt"
)
func main() {
type User struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
data := `[{"name":"Lucy","age":18},{"name":"Tom","age":22},{"name":"Jack","age":30}]`
var users []User
err := json.Unmarshal([]byte(data), &users)
if err != nil {
fmt.Println("json.Unmarshal failed:", err)
return
}
for _, u := range users {
fmt.Printf("Name: %s, Age: %d\n", u.Name, u.Age)
}
}

上述代碼中,定義了一個`User`結構體類型和一個JSON格式的字符串`data`。調用`json.Unmarshal()`函數將數據反序列化為`users`切片,然后使用`range`關鍵字遍歷切片并輸出每個用戶的`Name`和`Age`字段。

總之,Go語言提供了非常方便的對JSON數據進行處理的方法,可以輕松實現JSON數據的序列化、反序列化、遍歷等操作。