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

golang生成JSON及解析JSON

榮姿康2年前7瀏覽0評論

JSON是一種輕量級的數(shù)據(jù)交換格式,而Golang提供了豐富的API來處理JSON數(shù)據(jù)。在本文中,我們將探討如何生成和解析JSON數(shù)據(jù)。

生成JSON數(shù)據(jù)

生成JSON數(shù)據(jù)
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
City string `json:"city"`
}
func main() {
person := Person{
Name: "Alice",
Age:  25,
City: "Beijing",
}
result, err := json.Marshal(person)
if err != nil {
fmt.Println("json.Marshal error:", err)
return
}
fmt.Println(string(result))
}

上述代碼定義了一個名為Person的結(jié)構(gòu)體,其中包含名稱、年齡和所在城市等屬性。json.Marshal函數(shù)將該結(jié)構(gòu)體編碼為JSON格式,我們可以使用string()方法將其打印出來。

解析JSON數(shù)據(jù)

解析JSON數(shù)據(jù)
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
City string `json:"city"`
}
func main() {
data := []byte(`{"name":"Alice","age":25,"city":"Beijing"}`)
var person Person
err := json.Unmarshal(data, &person)
if err != nil {
fmt.Println("json.Unmarshal error:", err)
return
}
fmt.Printf("name: %s, age: %d, city: %s", person.Name, person.Age, person.City)
}

上述代碼定義了一個包含名稱、年齡和所在城市等屬性的Person結(jié)構(gòu)體,我們使用json.Unmarshal()函數(shù)將JSON數(shù)據(jù)解碼為該結(jié)構(gòu)體格式,并輸出其中的屬性值。

在Golang中,通過json.Marshal()和json.Unmarshal()函數(shù)可以方便地進行JSON數(shù)據(jù)的編碼和解碼。當(dāng)然,對于更復(fù)雜的JSON數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),我們需要使用相關(guān)的工具函數(shù)和庫來完成需要的操作。