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" ] `
我有一个字符串:- ["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" ] `