为什么Golang不能从具有前面小写字符的结构体生成json?

前端之家收集整理的这篇文章主要介绍了为什么Golang不能从具有前面小写字符的结构体生成json?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从我创建的结构中打印json结果如下:
type Machine struct {
  m_ip string
  m_type string
  m_serial string
}

并打印出来

m:= &Machine{ m_ip:"test",m_type:"test",m_serial:"test" }
m_json:= json.Marshal(m)
fmt.Println(m_json)

但是,结果只返回{}

其次,我尝试把第一个字改为大写字母如下:

type Machine struct{
  MachIp string
  MachType string
  MachSerial string
}

它的工作原理为什么在前面的小写字母的字没有工作?

去使用案例来确定特定的标识符是否在您的包的上下文中是公共的或私有的.在第一个例子中,json.Marshal不可见的字段,因为它不是包含代码的包的一部分.当您将字段更改为大写字母时,它们变为公开的,因此可以导出.

如果您需要在JSON输出中使用小写标识符,则可以使用所需的标识符标记字段.例如:

type Machine struct{
    MachIp     string `json:"m_ip"`
    MachType   string `json:"m_type"`
    MachSerial string `json:"m_serial"`
}

猜你在找的Go相关文章