golang是一種以高效和簡潔為目標的編程語言,其中一個重要的功能就是JSON解析和序列化。在golang中,我們可以使用標準庫中的json包來實現JSON數據的解析和序列化,其中json.Unmarshal()是其中一個重要的函數。
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { // 定義JSON字符串 jsonString := `{"Name":"Tom","Age":18}` // 定義一個Person結構體 var p Person // 解析JSON字符串 err := json.Unmarshal([]byte(jsonString), &p) if err != nil { fmt.Println("JSON Unmarshal error:", err) return } // 打印解析結果 fmt.Println("Person name:", p.Name) fmt.Println("Person age:", p.Age) }
上面是一個使用json.Unmarshal()解析JSON字符串的示例,首先我們需要定義一個結構體來描述JSON數據的結構,然后使用json.Unmarshal()函數將JSON字符串解析成結構體類型。在解析過程中,我們需要傳入JSON字符串的字節切片和目標結構體的指針,這個函數會自動將JSON字符串中對應的值賦值給結構體中的字段。
需要注意的是,如果JSON字符串中的字段名稱與目標結構體中的字段名稱不一致,那么解析程序將無法將JSON字符串中對應的值賦值給結構體中的字段。這種情況下,可以使用結構體標簽(tag)來指定JSON字符串中對應的字段名稱。
type Person struct { Name string `json:"name"` Age int `json:"age"` }
在上面的代碼中,我們為Name和Age字段添加了一個"json"標簽,告訴解析程序JSON字符串中對應的字段名稱應該為"name"和"age"。
上一篇python 按值刪除
下一篇vue屬性綁定監聽