golang 字符串 json格式解析

golang字符串json格式解析

大家好,又见面了,我是你们的朋友全栈君。

    最近在用golang写关于微信方面的东西,首先遇到的就是将字符串转换成golang的json格式,利用corpid和corpsecret返回的是一个json格式的字符串,其格式如下:
{"access_token":"uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m","expires_in":7200}
    我们可以把它转换成一个map[string]interface{}类型的数据,相关代码如下:
    str:="{\"access_token\":\"uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m\",\"expires_in\":7200}"
    var dat map[string]interface{}
    if err := json.Unmarshal([]byte(str), &dat); err == nil {
        fmt.Println(dat)
        fmt.Println(dat["expires_in"])
    } else {
        fmt.Println(err)
    }
    运行的结果如下:
map[access_token:uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m expires_in:7200] 7200
    我们还可以定义一个结构体,将数据转换成对应的结构体对象,再获取相应的数据,定义一个weixintoken结构体:
type weixintoken struct { 
   
    Tokens string `json:"access_token"`
    Expires int `json:"expires_in"`
}
    注意相应变量首字母的大小写(首字母小写不可见,大写可见,具体查看golang的变量相关的内容),将JSON绑定到结构体,结构体的字段一定要大写,否则不能绑定数据。
    ret:="{\"access_token\":\"uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m\",\"expires_in\":7200}"
    var config weixintoken
    if err := json.Unmarshal([]byte(ret), &config); err == nil {
        fmt.Println(config)
        fmt.Println(config.Tokens)
    }else {
        fmt.Println(err)
    }
    运行结果如下:
{
  
  "access_token":"uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m","expires_in":7200}
{uAUS6o5g-9rFWjYt39LYa7TKqiMVsIfCGPEN4IZzdAk5-T-ryVhL7xb8kYciuU_m 7200}

参考:http://golangtc.com/t/5322b2ea320b523f0a000075
http://www.tuicool.com/articles/BFruI3
http://www.cnblogs.com/fengbohello/p/4665883.html
https://segmentfault.com/q/1010000005025933/a-1020000005032034
http://www.cnblogs.com/go-ios/p/3906251.html
http://blog.csdn.net/tiaotiaoyly/article/details/38942311

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126928.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • LaTeX 参考文献_论文参考文献外文文献格式

    LaTeX 参考文献_论文参考文献外文文献格式这篇好棒,但是代码写在什么位置看下一篇(26条消息)Latex中如何制作参考文献_bluenight专栏-CSDN博客_latex中参考文献https://blog.csdn.net/chl033/article/details/5927207这篇有代码位置(26条消息)Latex引用bib文件步骤_一个人漫步走-CSDN博客【Latex】如何同时引用多篇参考文献_一千零一夜的博客-CSDN博客_latex怎么连续引用多个文献这篇也可以,写了几个细节:1.cite包一定要导入2….

  • python图层合并_Photoshop_【批量将同一背景与不同的上层合并图层的技巧】导出+Python3.X实现…[通俗易懂]

    python图层合并_Photoshop_【批量将同一背景与不同的上层合并图层的技巧】导出+Python3.X实现…[通俗易懂]设计需求:现在要制作一系列展品的小标签,使用一份相同的背景,改动的仅是文字内容设计环境:AdobePhotoshopCC2017Python3.X技巧思路:用Photoshop自带的功能将每个图层输出为PNG格式到某一文件夹使用python的PIL的Image模块,批量合成根据此次的文字居中要求,合成时的坐标经过计算(应该是前景的左上角在背景上的坐标,此坐标系的原点为左上角)Python…

    2022年10月23日
  • FLAG_ACTIVITY_CLEAR_TOP的使用

    FLAG_ACTIVITY_CLEAR_TOP的使用本例使用FLAG_ACTIVITY_CLEAR_TOP退出整个应用程序:多activity中退出整个程序,例如从A->B->C->D,这时我需要从D直接退出程序。补充:finish()和system(0)都只能退出单个activity。我们知道Android的窗口类提供了历史栈,我们可以通过stack的原理来巧妙的实现,这里我们在D窗口打开A窗口时在Intent中直接加入标志Int

  • 【主席树】bzoj3932 [CQOI2015]任务查询系统

    【主席树】bzoj3932 [CQOI2015]任务查询系统

  • 大数据云计算和物联网之间的区别和联系_云计算和大数据的区别

    大数据云计算和物联网之间的区别和联系_云计算和大数据的区别一、概念1.云计算“云”指通过计算机池提供资源,也就是说,不是构建一两台机器的问题,而是要构建一定规模的集群,并且对该集群统一管理,形成”资源池“,才能满足云计算业务的需求。简单地说,**云计算就是基于互联网将规模化资源池的计算、存储、平台开发和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。**云计算代表了以虚拟化技术为核心、以低成本为目标的、动态可扩展的…

  • 工控机上位机软件的开发历程(二)[通俗易懂]

    工控机上位机软件的开发历程(二)[通俗易懂]仪器归一化设计这是具体内容的第一篇,我们先来讲述仪器的归一化设计。仪器是各种功能都有的,我只举我们在环境监测这方面所用到的仪器。我们要测试水是不是有污染物质,污染到什么程度,我们要测试水体的高锰酸盐指数、氨氮、总磷、总氮等值。我们的站房有一个后备电源,我们要知道市电是否断电了,是否在用备用电源。我们的站房是有空调的,我希望知道站房的温度和湿度,于是就有了一个温湿度计。我们可能还会有流量计、…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号