我正在解析一个包含字符串数组的 JSON 对象:
var ii interface{}
json := "{\"aString\": [\"aaa_111\", \"bbb_222\"], \"whatever\":\"ccc\"}"
err := json.Unmarshal([]byte(json), &ii)
if err != nil {
log.Fatal(err)
}
data := ii.(map[string]interface{})
fmt.Println(data["aString"]) // outputs: ["aaa_111" "bbb_222"]
我试图转换data["aString"]为 []string 以便能够遍历它,但它失败了:
test := []string(data["aString"]).([]string)
fmt.Println(test) // panic -> interface conversion:
// interface is string, not []string
我该如何转换data["aString"]?
编辑:
我没有正确表达自己。如果我打印data,我有这样的地图:
map[aString:["BBB-222","AAA-111"] whatever:ccc]
我想循环 aString (操作每个数组条目)。但我找不到方法,因为 aString 是type interface {}:
for i, v := range aString { // <-- fails
// ...
fmt.Println(i, v)
}
这就是为什么我要转换aString。我不想将看起来像数组的字符串转换为数组。
慕尼黑的夜晚无繁华
蛊毒传说
MMTTMM
阿波罗的战车
随时随地看视频慕课网APP
相关分类