gpt4 book ai didi

go - 编码(marshal)/解编码(marshal) reflect.Type

转载 作者:IT王子 更新时间:2023-10-29 02:03:14 27 4
gpt4 key购买 nike

我创建了 map[string]interface{} 并且我想通过 2 个重置服务之间的映射传递多种类型。

每次我编码时,我都会在应该包含 reflect.Type 的字段中得到空映射。

ServiceType:map[]

有可能吗?

用于测试的代码:(KeyValuePair 将代表 map 的单个值)并且 MessageService 可以替换为任何类型的类(class)

data := GenericHandlers.KeyValuePair{Key:"ServiceType",Value:reflect.TypeOf(MessageService.MessageService{})}
Json , _ := json.Marshal(data)
resKvp := GenericHandlers.KeyValuePair{}
err := json.Unmarshal(Json,&resKvp)
if(err != nil){
log.Println(err.Error())
}
fmt.Println(resKvp)


type KeyValuePair struct{
Key string
Value interface{}
}

最佳答案

简短回答:不,这是不可能的。

稍微长一点的答案:自relfect.Type ,由 TypeOf 返回,是由 unexported 类型 rtype 实现的接口(interface)类型 ,其字段均未导出且其方法集不包含 MarshalJSON/UnmarshalJSON 方法,您不能按原样编码或解码 reflect.Type 值。

关于go - 编码(marshal)/解编码(marshal) reflect.Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com