对不起,如果问题太新手了,因为我刚开始学习昨天去。 我尝试将publishEvent转换为字节,并且编译器显示如下错误:
var parsed map[string]interface{}
bytes := []byte(publishEvent) --->Error occur here
err := json.Unmarshal(bytes, &parsed)
if err != nil{
fmt.Println("error: ", err)
}
有人能告诉我这个方法吗?
谢谢。
exit;
答案 0 :(得分:0)
我认为您使用的结构是来自https://github.com/elastic/libbeat
的common.MapStr
common.MapStr
已经是map[string]interface{}
所以我不确定你为什么要把它变成JSON,然后把它解析成同样的结构,但如果这就是你真正想要的do,用以下代码替换错误行:
bytes, err := json.Marshal(publishEvent)
应该有效。您将在下一行重新声明err
时收到错误,因此请将其更改为:
err = json.Unmarshal(bytes, &parsed)
导致以下代码(还添加了另一个错误检查):
var parsed map[string]interface{}
bytes, err := json.Marshal(publishEvent)
if err != nil{
fmt.Println("error: ", err)
// you'll want to exit or return here since we can't parse `bytes`
}
err = json.Unmarshal(bytes, &parsed)
if err != nil{
fmt.Println("error: ", err)
}