我试图解析一个包含JSON数据的文件:
[ {"a" : "1"},{"b" : "2"},{"c" : "3"} ]
由于这是一个带有动态键的JSON数组,我以为可以使用:
type data map[string]string
但是,我无法使用地图解析文件:
c,_ := IoUtil.ReadFile("c") dec := json.NewDecoder(bytes.NewReader(c)) var d data dec.Decode(&d) json: cannot unmarshal array into Go value of type main.data
解析包含JSON数据的文件的最简单的方法是将一个数组(仅字符串到字符串类型)转换为Go结构体?
编辑:进一步阐述接受的答案 – 这是真的,我的JSON是一个地图数组。为了使我的代码工作,文件应该包含:
{ "a":"1","b":"2","c":"3" }
然后可以读入map [string]字符串
这是因为你的json实际上是一系列的地图,但是你正在试图将它编排成一个地图。尝试使用以下内容:
type YourJson struct { YourSample []struct { data map[string]string } }