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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js的sort排序方法_sort对象排序

    js的sort排序方法_sort对象排序sort()方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回…

    2022年8月12日
    7
  • 前端开发电脑配置(做前端用什么笔记本电脑)

    我们在刚入职的时候,公司会让我们自己来配置电脑。下面是一些实用性的软件。1.VisualStudioCode这是我们前端开发人员相对来说最多使用的代码编辑器了,可以下载各种插件来辅助我们编写代码。下载链接:https://code.visualstudio.com/.2.Chrome浏览器谷歌浏览器,是目前最全面的浏览器,对我们写的代码非常友好,包括也支持各种各样的插件。下载链接:https://www.google.cn/chrome/.注:我这个是安装了csdn出品的插件

    2022年4月9日
    166
  • 史上最详细图解快速排序的方法_快速排序的基本步骤

    史上最详细图解快速排序的方法_快速排序的基本步骤0.前言找了好多贴在都没有找到舒心的一次能看懂的文章,决定把学明白每一步全部图解出来。推荐一个博主的文章也很不错:https://blog.csdn.net/weixin_42109012/article/details/916450511.图解开始![在这里插入图片描述](https://img-blog.csdnimg.cn/e6bbdfbe97e44bbd99f99cf456c998ed.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5

    2022年9月13日
    0
  • MBUS系列产品特点(科慧铭远)[通俗易懂]

    MBUS系列产品特点(科慧铭远)[通俗易懂]     北京科慧铭远自控技术有限公司联合国际标准化组织、计量中心、热力集团、清华大学检测与电子技术研究所,成立国内首家M-BUS通信设备检测中心,对于M-BUS主站、从站的通信设备全方位的检测其是否符合国际和国内标准,并予以认证。北京科慧铭远自控技术有限公司有着在M-BUS领域最全面的的研发和生产能力,获得国际标准化组织的认可,产品在欧洲、亚洲、中国获得全面应用。其生产的MBUS设备的主要…

    2022年10月10日
    0
  • 知乎转载_知乎上的文章可以转载吗

    知乎转载_知乎上的文章可以转载吗链接:https://www.zhihu.com/question/22590902/answer/55182189来源:知乎著作权归作者所有,转载请联系作者获得授权。题主的问题是如何白手起家靠一个人赚到100万,我觉得这个是可以做到的,但是要分阶段,不太可能从一个从无经商经验的人突然转变成一个人折腾点东西就能赚百万(多个人一起有可能)。我先把我个人的阶段拆解开来,给你一个直观的感受。…

    2022年9月28日
    0
  • validation怎么用_什么是确认validation

    validation怎么用_什么是确认validation引入文件环境在jQuery下,所有先要引入jQuery1<%–校验样式–%>2<linkrel=”stylesheet”href=”<%=basePath%>css/validationEngine.jquery.css”>3<%–校验及自定义规则规则–%>4<scripttype=”t…

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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