golang使用来自kafka的json消息

6ojccjat  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(309)

我使用以下命令在本地运行kafka: ./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 {   }}

有没有办法用struct指针正确地解组消息?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题