JSON

golang json的大小写技巧

字号+ 作者:H5之家 来源:H5之家 2017-07-22 16:06 我要评论( )

golang中json格式有大小写要求,json中小写键名会无法导出,结构体小写也无法导出json对应键名。br /就像这样(撸代码):br /nbsp;nbsp; nb

golang json的大小写技巧 2015-09-17 18:22:01

分类: IT业界

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

阅读(894) | 评论(0) | 转发(0) |

1

上一篇:golang单核的坑

下一篇:golang体验浅谈

相关热门文章

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

评论热议

请登录后评论。

登录 注册


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • AJAX如何接收JSON数据示例介绍

    AJAX如何接收JSON数据示例介绍

    2017-07-23 13:05

  • JSON 解析和生成, TJSONValue, TJSONObject, TJSONPair, TJSONAr

    JSON 解析和生成, TJSONValue, TJSONObject, TJSONPair, TJSONAr

    2017-07-22 16:00

  •  WinJS实用开发技巧(1):XML转JSON

    WinJS实用开发技巧(1):XML转JSON

    2017-07-22 15:03

  • Golang中使用JSON的一些小技巧

    Golang中使用JSON的一些小技巧

    2017-07-22 09:01

网友点评
f