Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12468
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-15 10:19
文章分类
文章存档

2015年(3)

我的朋友
最近访客

分类: IT业界

2015-09-17 18:22:01

golang中json格式有大小写要求,json中小写键名会无法导出,结构体小写也无法导出json对应键名。
就像这样(撸代码):
       package main
        import(
                "fmt"
               "encoding/json"
        )
        type js struct{
                name string
        }
        func main(){
                j_:=js{name:"li"}
                k,_:=json.Marshal(j_)//已经把j转化为json流了
                fmt.Println(k)//nil
        }
but
        golang当然有考虑到这一点:
在结构体字段后加标签可以处理大小写问题:
package main
        import(
                "fmt"
               "encoding/json"
        )
        type js struct{
                Name string    `json:"name"`
        }
        func main(){
                j_:=js{name:"li"}
                k,_:=json.Marshal(j_)//已经把j转化为json流了
                fmt.Println(k)//[123 34 110 97 109 101 34 58 34 108 105 34 125]
        }
反之,json流转化为结构体也不用担心大小写了。具体原理应该是golang通过反射拿到了tag然后转换,作为一种golang自身设计与json标准的一种衔接吧。
阅读(3337) | 评论(0) | 转发(0) |
1

上一篇:golang单核的坑

下一篇:golang体验浅谈

给主人留下些什么吧!~~