隨著web開發的迅速發展,web應用程序對于數據的處理和交互越來越重要。json數據成為了web應用程序中最常用的數據格式之一。在go語言中,可以很方便地自動生成json數據。
type Person struct { Name string `json:"name"` Age int `json:"age"` Address string `json:"address,omitempty"` } person1 := Person{"張三", 18, ""} person2 := Person{Name: "李四", Age: 20, Address: "杭州市"} b1, err := json.Marshal(person1) if err != nil { fmt.Println("json encode error: ", err) } fmt.Println(string(b1)) // {"name":"張三","age":18} b2, err := json.Marshal(person2) if err != nil { fmt.Println("json encode error: ", err) } fmt.Println(string(b2)) // {"name":"李四","age":20,"address":"杭州市"}
可以看到,我們定義了一個結構體Person,并給結構體的字段添加了json標簽,這樣調用json.Marshal()時就會自動將結構體轉換為符合json規范的字符串。
另外,還可以在json.Marshal()的時候加上縮進的參數,以便更好地展示json數據:
b, err := json.MarshalIndent(person2, "", " ") if err != nil { fmt.Println("json encode error: ", err) } fmt.Println(string(b)) // { // "name": "李四", // "age": 20, // "address": "杭州市" // }
生成的json數據已經格式化好,可以方便地和其他語言交互,也方便了前端調試json數據接口。