Golang是一種編程語言,它的json使用很方便。寫一個(gè)json時(shí),我們可以使用struct或map。
首先,使用struct需要使用注釋(tag)來描述json代碼中的字段名稱、類型和其他信息,如下所示:
type Person struct { Name string `json:"name"` Age int `json:"age"` Address string `json:"address,omitempty"` }
在上述例子中,tag是在字段名稱后面的反引號(hào)中使用的。json標(biāo)簽用于告訴json格式化程序一些關(guān)于該字段的更多信息,例如名稱。在這個(gè)例子中,我們定義了Person結(jié)構(gòu)體,并為每個(gè)字段指定了json標(biāo)簽。當(dāng)編組或解組一個(gè)Person時(shí),json包使用這個(gè)標(biāo)簽。
使用空接口和類型斷言,我們可以與json包一起使用map來編組和解組json。
package main import ( "encoding/json" "fmt" ) func main() { jsonString := `{"name":"John Doe","age":42}` var person map[string]interface{} if err := json.Unmarshal([]byte(jsonString), &person); err != nil { panic(err) } fmt.Println(person["name"].(string)) fmt.Println(person["age"].(float64)) }
在上面的例子中,我們使用Unmarshal函數(shù)將json字符串解組為一個(gè)map類型的person變量。然后我們可以使用類型斷言來訪問map中的值。
Golang的json使用非常簡(jiǎn)單且易于理解。它提供了一些簡(jiǎn)潔的結(jié)構(gòu)來處理json數(shù)據(jù),使得編寫和解讀json變得非常容易。