【发布时间】:2018-09-23 21:09:52
【问题描述】:
我一直在尝试弄清楚如何让它发挥作用,但我被卡住了。
我有一个看起来像这样的对象:
type PropSet map[string]*Prop
type Prop struct {
val reflect.Value
}
我需要生成它所拥有的所有键值对的 JSON 表示。我一直在阅读关于如何编组更普通类型的帖子,但我一直无法弄清楚如何处理 reflect.Value 类型。我想我应该能够做这样简单的事情:
func (p Prop) MarshalJSON() ([]byte, error) {
return json.Marshal(p.val.Value().Interface())
}
...但它只是不工作。有什么建议吗?
附加说明:我没有写数据结构,但我认为它使用 reflect.Value 作为映射值的原因是我们期望的值可以是整数、浮点数、字符串等。所以这本质上需要对基接口进行某种类型推断以找出返回结果。
【问题讨论】:
标签: go marshalling