Go:反序列化数组字符串

时间:2016-10-21 11:34:44

标签: arrays string parsing go slice

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

1 个答案:

答案 0 :(得分:4)

如何使用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"  ]  `