我正在使用以下命令运行kafka localy:
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTop
之后,我通过命令行将此消息发送给使用者:
{
"field1":"value1",
"keys":{
"fieldId":"fd",
"fieldId2":"fd2",
"personId":"pr1",
"rand":"lkfdnvlkdsjf"
}
}
该消息由golang客户端使用,并且代码由struct取消对它的销毁:
type Message struct {
field1 string `json:"field1"`
keys struct {
fieldId string `json:"fieldId"`
fieldId2 string `json:"fieldId2"`
personId string `json:"personId"`
rand string `json:"rand"`
} `json:"keys"`
}
如果我使用界面解组:
var m map[string]interface{}
json.Unmarshal(msg.Value, &m)
它返回:
map[field1:value1 keys:map[fieldId:fd fieldId2:fd2 personId:pr1 rand:lkfdnvlkdsjf]]
但是如果我使用结构指针解编组:
m := Message{}
json.Unmarshal(msg.Value, &m)
输出不像这样:
{value1 { }}
有没有一种方法可以用结构指针正确解组消息?