GoLang使用来自kafka的json消息

时间:2019-12-23 13:58:27

标签: json go apache-kafka

我正在使用以下命令运行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 {   }}

有没有一种方法可以用结构指针正确解组消息?

0 个答案:

没有答案