GoLang使用来自kafka的json消息

GoLang使用来自kafka的json消息,json,go,apache-kafka,Json,Go,Apache Kafka,我使用以下命令在本地运行kafka: /bin/kafka-console-producer.sh--代理列表localhost:9092--主题testTop 之后,我在命令行中将此消息发送给消费者: { "field1":"value1", "keys":{ "fieldId":"fd", "fieldId2":"fd2", "personId":"pr1", "rand":"lkfdnvlkdsjf" } } 该消息由go

我使用以下命令在本地运行kafka:

/bin/kafka-console-producer.sh--代理列表localhost:9092--主题testTop

之后,我在命令行中将此消息发送给消费者:

{
   "field1":"value1",
   "keys":{
      "fieldId":"fd",
      "fieldId2":"fd2",
      "personId":"pr1",
      "rand":"lkfdnvlkdsjf"
   }
}
该消息由golang客户端使用,代码按结构对其进行解包:

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]接口{}
Unmarshal(msg.Value,&m)
它返回:

map[field1:value1键:map[fieldId:fd fieldId2:fd2 personId:pr1 rand:lkfdnvlkdsjf]]
但如果我对结构指针使用解组:

m:=消息{}
Unmarshal(msg.Value,&m)
输出不是这样满的:

{value1{}

有没有办法用结构指针正确地解组消息

结构的字段应该是大写的,因此使用
Field1
而不是
Field1
json包只访问结构类型的导出字段(以大写字母开头的字段)。因此,JSON输出中将只显示结构的导出字段。
谢谢,我将字段名称改为大写。它可以工作。结构的字段应该是大写的,因此使用
Field1
而不是
Field1
json包只访问结构类型的导出字段(那些以大写字母开头的字段)。因此,JSON输出中将只显示结构的导出字段。
谢谢,我将字段名称改为大写。它起作用了。