加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 19:20:36 所属栏目:大数据 来源:网络整理
导读:我正在尝试从我创建的结构中打印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) 但是,结果只返回{}
我正在尝试从我创建的结构中打印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"`
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读