范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Go语言JSON处理

  JSON字符串解析到结构体代码示例type User struct {  Name      string  FansCount int64 }  // 如果反序列化的时候指定明确的结构体和变量类型 func TestJsonUnmarshal(t *testing.T) {  const jsonStream = `         {"name":"ethancai", "fansCount": 9223372036854775807}     `  var user User // 类型为User  err := JsonUnmarshal(jsonStream, &user)  if err != nil {   fmt.Println("error:", err)  }  fmt.Printf("%+v  ", user) } 解析Json数组到切片(数组)type Person struct {  Name string  Age  int }  type Family struct {  Persons []Person }  // 解析多维数组 var f Family  // 模拟传输的Json数据 familyJSON := `{"Persons": [{"Name":"Elinx","Age":26}, {"Name":"Twinkle","Age":21}] }`  fmt.Println("======================")  // 解析字符串为Json json.Unmarshal([]byte(familyJSON), &f)
  运行结果 === RUN   TestJsonMash ====================== {[{Elinx 26 0001-01-01 00:00:00 +0000 UTC []} {Twinkle 21 0001-01-01 00:00:00 +0000 UTC []}]} {"Persons":[{"Name":"Elinx","Age":26,"Birth":"0001-01-01T00:00:00Z","Children":null} --- PASS: TestJsonMash (0.00s) PASS 使用 struct tag 辅助构建 json
  struct能被转换的字段都是首字母大写的字段,但如果想要在json中使用小写字母开头的key,可以使用struct的tag来辅助反射。 type Post struct {  Id      int      `json:"ID"`  Content string   `json:"content"`  Author  string   `json:"author"`  Label   []string `json:"label"` } func TestJsonMash1(t *testing.T){  postp := &Post{   2,   "Hello World",   "userB",   []string{"linux", "shell"},  }   p, _ := json.MarshalIndent(postp, "", "	")  fmt.Println(string(p)) }
  运行结果: === RUN   TestJsonMash1 {  "ID": 2,  "content": "Hello World",  "author": "userB",  "label": [   "linux",   "shell"  ] } --- PASS: TestJsonMash1 (0.00s) PASS 如何使用 tagtag中标识的名称将称为json数据中key的值 tag可以设置为 json:"-" 来表示本字段不转换为json数据,即使这个字段名首字母大写如果想要json key的名称为字符"-",则可以特殊处理 json:"-," ,也就是加上一个逗号如果tag中带有 ,omitempty 选项,那么如果这个字段的值为0值,即false、0、""、nil等,这个字段将不会转换到json中如果字段的类型为bool、string、int类、float类,而tag中又带有 ,string 选项,那么这个字段的值将转换成json字符串解析 Json 数据到结构已知 struct{     "id": 1,     "content": "hello world",     "author": {         "id": 2,         "name": "userA"     },     "published": true,     "label": [],     "nextPost": null,     "comments": [{             "id": 3,             "content": "good post1",             "author": "userB"         },         {             "id": 4,             "content": "good post2",             "author": "userC"         }     ] }
  测试代码 type Post struct {  ID        int64         `json:"id"`  Content   string        `json:"content"`  Author    Author        `json:"author"`  Published bool          `json:"published"`  Label     []string      `json:"label"`  NextPost  *Post         `json:"nextPost"`  Comments  []*Comment    `json:"comments"` }  type Author struct {  ID   int64  `json:"id"`  Name string `json:"name"` }  type Comment struct {  ID      int64  `json:"id"`  Content string `json:"content"`  Author  string `json:"author"` }  func TestJsonStruct(t *testing.T){  jsonData :="{     "id": 1,     "content": "hello world",     "author": {         "id": 2,         "name": "userA"     },     "published": true,     "label": [],     "nextPost": null,     "comments": [{             "id": 3,             "content": "good post1",             "author": "userB"         },         {             "id": 4,             "content": "good post2",             "author": "userC"         }     ] }"  var post Post  // 解析json数据到post中  err := json.Unmarshal([]byte(jsonData), &post)  if err != nil {   fmt.Println(err)   return  }  fmt.Println(post)  fmt.Println(post.Author, post.Content, post.Comments[0].Content,post.Comments[0].ID, post.Comments[0].Author ) }
  运行结果 === RUN   TestJsonStruct {1 hello world {2 userA} true []  [0xc00016d1a0 0xc00016d1d0]} {2 userA} hello world good post1 3 userB --- PASS: TestJsonStruct (0.00s) PASS 欢迎关注公众号:程序员财富自由之路
  在这里插入图片描述 参考资料https://www.cnblogs.com/f-ck-need-u/p/10080793.html

品仕乐立式吹风机亲测体验吹头发也能成为护发手段说起吹风机,相信现在的人基本都不会陌生,甚至可以说是极其熟悉,毕竟作为日常生活必备小电器之一,吹风机在男孩女孩心中都有着极高的地位。不过,不知道大家有没有发现,传统的吹风机因为需要联想陈劲谈摩托罗拉edge系列配色命名灵感来自唐诗宋词12月18日消息,今日,联想中国区手机业务部总经理陈劲通过微博发文谈到了edge系列配色命名,他表示,大家好像注意到了,从今年开始,我们在edge系列的颜色命名很中国风,严格意义上打败电商系列之十七实体店的售后和电商相比,实体店在产品售后服务方面,具有天然的优势。天底下没有十全十美的产品,消费者购买产品时,往往考虑的是综合收益。实体店如果能利用好售后服务这个优势,对于自己应对电商的威胁也王传福某些情况下决策最快只需2秒,子公司赚比亚迪的钱不叫本事,拆出去赚钱才叫本事文李阳编辑施智梁年底岁末,回首中国车市,一大特点就是整体车市向下,但新能源车渗透率不断提高。大批尾部车企熬不住寒冬,倒闭或被收购,也有头部车企逆势扩张,在人才市场上大打抢人战,比如DAMA第一章数据管理数据管理的核心驱动因素数据管理的核心驱动力在于组织通过数据资产管理获得商业价值。关键在于拥有高质量可靠性的数据做支撑。数据管理的目标数据安全数据质量元数据理解和支撑业务人员的数据需终于有人把业务中台数据中台技术中台都讲明白了导读2015年阿里巴巴提出大中台,小前台的中台战略,通过实施中台战略找到能够快速应对外界变化,整合阿里各种基础能力,高效支撑业务创新的机制。阿里巴巴中台战略最早从业务中台和数据中台海南冬交会智慧农业吸睛种田越来越有科技范冬交会中国移动展馆展示智慧农业渔业设备。黄艺摄中新网海口12月17日电(记者黄艺)作物听诊器农田里的变形金刚智能水肥一体机在此间进行的2021年中国(海南)国际热带农产品冬季交易会新的支付方式来了,国家正式出手,19家银行开始行动电商经济的繁荣发展,为第三方移动支付插上了腾飞的翅膀,2013年之前,很多人还不是特别熟悉移动支付这一名词,在那之后,随着支付宝微信支付的相继推出,移动支付正式和人们的日常生活融合董明珠说格力空调是中国最好的,我买的却经常出毛病维修费高,大家怎么看?有什么好的解决办法吗?我是单位总务科的,经我手里买的全是格力空调,买了最长的有7年了!除了极个别安装时有漏氟利昂的现象外,没有一台坏的!格力还是不错的!要说格力空调,真的!我用了十几年,家里和店铺上都安带娃家庭优选激光电视,漫反射实力护眼作为电视领域的新物种,近两年激光电视的发展可谓是十分迅猛。这不仅是因为人们消费水平的提高,更是因为人们对用眼安全的重视。我国目前近视患者人数多达6亿,青少年近视率更是高居世界第一。iPhone8Plus只要1300元?看完验机报告瞬间明白了iPhone8Plus目前的价格非常便宜,但性能还算不错,很多人买。今天这台iPhone8Plus只要1300元,按正常的行情看是不可能的,那这台iPhone8Plus为什么这么便
爆笑没把我哄好,今晚别想上我的床!你和闺蜜打架的姿态哎呀,床你别拉我,我要起来上班了腿短,就不要学人家完越野你个胖子,快点下来,压死我了!和男朋友约会时,装腔作势的你没把我哄好,今晚别想上我的床!让你见识一下,猫是每个男人都有一个吉普梦之2022款吉普Wagoneer每个男人都有一个吉普梦之2022吉普WagoneerGrandWagoneer总览吉普(Jeep)Wagoneer和GrandWagoneer将是该品牌更大,更高档的SUV系列,与丰田汉兰达可能要长大了,它将成为更大的三排SUV丰田最近注册了一个新的商标大汉兰达。这个名字似乎暗示了现有的汉兰达三排SUV的更大变体。汉兰达为2020款进行了重新设计,因此大汉兰达可能会在几年后的中期更新中上市。丰田显然羡慕吉我父亲出轨后,我母亲的隐私日记露出来,我的心碎了01当老叶离开时,我一直守着她。直到他离开人世之前,我一直无法宽恕他,也从未打算宽恕。对我妈以前被抛弃,N年后又和他翻脸的事情,我一直保持平静和沉默。归根结底,她除了是我妈妈,还是看着这些想越狱的狗子,它们来搞笑的吗?!每个狗子都有一个越狱梦有的成功了但有的不光失利了,并且还很尴尬这就十分十分尴尬了!哈喽,我就是出来看看大家哟,我没有卡住哦!别理我,我就想静静的看看外面的国际喂喂喂!有没有人帮我一京东自营100下店,暗藏玄机自营入驻的条件是比较高的京东自营的入驻条件1。公司主体满足2年以上2。注册资金为50万以上3。公司纳税性质必须为一般纳税人4。要有品牌注册证或者商标授权书辅助条件在京东天猫各大电商LOL手游国服开测!用Reno6Pro抢先试玩后,发现比农药爽近段时间英雄联盟手游国服开测的信息被炒得沸沸扬扬,随后持续发酵,端游的LOL老玩家这下终于等到了。当然对于年纪稍小一点的玩家来说,可能对MOBA手游的初始印象就是农药,对LOL反而一加BusPro卖799香不香?众媒体一致评价真无线降噪耳机新标杆真无线降噪耳机是真的火,就连一加也推出了旗下的首款旗舰级产品一加BudsPro了。与此同时,随着8月3日首发之日的临近,很多人对这款耳机的真实体验还没有一个大致的了解。虽然官方介绍图库能这么全能?点击就看EMUI11图库功能新升级细心的花粉有没有发现相比于EMUI10。1EMUI11的图库风格有了较大蜕变这次EMUI11图库界面具体有哪些新变化呢共同一探究竟1相册界面杂志化支持自定义排序在此前的EMUI10华为鸿蒙2。0版,微信不支持适配,它到底葫芦卖的啥药?鸿蒙的2。0手机版已经发布有一段时间了,我们也看到许多的厂商都已经开始主动去适配鸿蒙的APP了。但是我在所有的鸿蒙适配列表里,没有发现微信和腾讯QQ难道腾讯这么快就忘本了吗?当初有谷歌你没有想到吧!华为它对你的回击竟然来得如此之快,你紧逼让美国和谷歌怎么也没想到,华为的鸿蒙竟然来的如此之快,安卓的所有底层架构全被华为给换了。王成录近日华为正式发布手机鸿蒙OS2。0Beta版系统,鸿蒙的界面相比于EMUI11没有太大的