golang无法反映到map [interface {}] interface {}

时间:2015-07-09 16:22:20

标签: json go

我原来的问题是我想将URL.Values解析为泛型类型(map [interface {}] interface {})编辑/添加一些值然后将其转换为JSON字符串并将其放到PostgreSQL JSON列中。

我尝试使用此代码进行解析,但content似乎为null,而err为false。 request.URL.Query()打印一个漂亮的地图对象。

v := reflect.ValueOf(request.URL.Query())
i := v.Interface()
content, err := i.(map[interface{}]interface{})

// Do some operations

jsonString, _ := json.Marshal(content)

// Add to DB

为什么它为空?我也觉得太通用了吗?

1 个答案:

答案 0 :(得分:3)

content, err := i.(map[interface{}]interface{}),这不是演员,它是一个类型断言。你说(断言)接口属于map[interface{}]interface{}类型,但事实并非如此。它的类型为map[string][]string。您获得null作为值,因为它失败了。我非常怀疑error是错误的。

你觉得太通用了吗?你当然是。我想不出集合类型需要改变的任何原因......追加你想要的东西,把它写到你的数据库中。没有什么可以防止这种事情发生了吗?