在 Go語言中,解析JSON是一項非常常見的任務。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,通常用于在客戶端和服務器之間傳遞數據。
Go語言標準庫提供了一組函數用于解析JSON字符串。 json.Unmarshal() 函數是最常用的函數之一,它將JSON字符串解碼并將結果存儲在結構體中。
type Person struct { Name string `json:"name"` Age int `json:"age"` Address string `json:"address"` } func main() { jsonString := `{ "name": "Tom", "age": 21, "address": "Beijing" }` var person Person err := json.Unmarshal([]byte(jsonString), &person) if err != nil { panic(err) } fmt.Println(person) }
代碼中的 Person 結構體對應于JSON格式中的字段。 Note:`json:"fieldName"` 是一個標記,用于指定JSON中的字段名。
json.Unmarshal() 函數需要兩個參數:JSON 字符串和一個指向要存儲結果的結構體的指針。如果解碼成功,解碼后的結果將存儲在該結構體中。
如果要將JSON解碼為其他類型的值,例如一個map,可以使用 json.Unmarshal() 函數:
jsonString := `{"key1": "value1", "key2": "value2"}` var data map[string]interface{} err := json.Unmarshal([]byte(jsonString), &data) if err != nil { panic(err) } fmt.Println(data)
在此示例中,解碼后數據類型為interface{},也就是說,它可以是基本類型、數組、字典等類型,可以在運行時判斷。
這是解析JSON的基礎,你現在可以將 JSON 解碼到 Go 結構體或 Map 中。
上一篇mysql單表查多表聯查
下一篇html導航欄的代碼