去map [int] struct JSON Marshal

时间:2014-04-04 22:24:10

标签: json struct go marshalling

尝试在go:

中将map [int]解析为用户定义的struct

以下是数据模式。

type Recommendation struct {
    Book  int     `json:"book"`
    Score float64 `json:"score"`
}

这是json marshaling:

ureco := make(map[int]data.Recommendation)
ureco, _ = reco.UserRunner()

json, _ := json.Marshal(ureco)
fmt.Println(json)

其中reco.UserRunner()返回相应的结构类型。

这会打印一个空的json对象:

[]

更新:

错误消息:

json: unsupported type: map[int]data.Recommendation

那我如何json一个结构图?还是有替代方法?

1 个答案:

答案 0 :(得分:4)

如果您只需要编组它,您可以迭代地图并将其转换为切片。

slc := make([]data.Recommendation)
for _, val := range ureco {     
    slc = append(out, val)
}
json, _ := json.Marshal(slc)

您可以在此处看到一个包含map[int]string的简单示例:http://play.golang.org/