我遇到了在 golang 中编组 JSON 的问题。
我需要解组从 UDP 数据包收到的 json 对象。但是我遇到了解组的问题 - 它不想正确解组。
我收到“解组错误:json:无法将字符串解组为 main.MyMap 类型的 Go 值”错误。我以不同的方式进行了测试,但感觉卡在了这个例子上——marshaland unmarshal in a line,但仍然会出错。
package main
import (
"encoding/json"
"fmt"
"log"
)
type MyMap struct {
Param map[string]string `json:"packet"`
}
func main() {
rawJson := []byte(`{
"packet":{
"hostname":"host1",
"pid":"123435",
"processname":"process",
"type":"partial"}
}`)
data, err := json.Marshal(rawJson)
if err != nil {
log.Println("Error with marchal JSON: " + err.Error())
}
var unmarshaled MyMap
err = json.Unmarshal(data, &unmarshaled)
if err != nil {
fmt.Printf("Error with unmarshaling: %v", err)
return
}
fmt.Printf("Read a message from %v %s \n", unmarshaled.Param["pid"], unmarshaled.Param["processname"])
}
如果我试图解组从 UDP 收到的 JSON,错误会说
invalid character 'i/x01' looking for beginning of value
我相信我会因为对元帅系统的误解而得到这种错误。如果您能帮助我,我将不胜感激谢谢!
胡子哥哥
缥缈止盈
相关分类