Go:反序列化数组字符串

Go: Deserialize array string

我有一个字符串:- ["a","b","c"]。如何解析/转换成 Go 数组?我可以进行字符串解析,但在 Go 中是否有任何开箱即用的函数。

使用 json.Unmarshal() 怎么样?

s := `["a","b","c"]`

var arr []string
if err := json.Unmarshal([]byte(s), &arr); err != nil {
    fmt.Println("Error:", err)
}
fmt.Printf("%q", arr)

输出(在 Go Playground 上尝试):

["a" "b" "c"]

但是知道包 json 在幕后做了很多反射功夫,如果你自己编写解析会更快。另一方面,包 json 也将处理输入中的随机空白——甚至是换行符和 Unicode 序列,就像这个(它等同于 ["a","b","c"]):

s := `[ "a" , "b"  
 ,"\u0063"  ]  `