如何使用编码解析表示 Go 中 JSON 数组的字符串/json 包?
type JsonType struct { Array []string } func main() { dataJson := `["1","2","3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
提供的代码从 Unmarshal 返回错误值。要正确解析 JSON 数组,请使用以下代码:
err := json.Unmarshal([]byte(dataJson), &arr)
此外,您可以通过使用切片而不是自定义结构来简化代码:
package main import ( "encoding/json" "fmt" ) func main() { dataJson := `["1","2","3"]` var arr []string err := json.Unmarshal([]byte(dataJson), &arr) fmt.Println(err) fmt.Println(arr) }
此代码将输出:
<nil> [1 2 3]
将指针传递给 Unmarshal 启用该函数减少或消除内存分配。此外,在处理上下文中,调用者可以重复使用相同的值,进一步节省分配。
以上是如何使用 `encoding/json` 包在 Go 中解析 JSON 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!