2019独角兽企业重金招聘Python工程师标准>>>

json

我并不想解释json是什么。

库名 GJSON

点这里去star感谢小哥

下载

$ go get -u github.com/tidwall/gjson

与官方的json解析包有什么区别

官方的包,都是一整块数据一起 包装/解析。
有如下数据

struct {str1str2
}
json :{str1:"xx",str2:"xx"}

如果要单独得到str1的话,很麻烦的。

官方给的demo

package mainimport "github.com/tidwall/gjson"const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`func main() {value := gjson.Get(json, "name.last")println(value.String())
}

输出:Prichard

我写的超级详细的例子!

给你们看看我要解析的json,就问你们怕不怕:

//第一个
{"richtext": {"data": {"items": [{"desc": "惊爆!!!在光棍节这种虐狗的节日到来之际,有一份充满恶意的榜单华丽丽出炉了。咱们look look~此榜单一出,各路好汉躺枪无数!诸位男侠女侠纷纷表示终于找到自己单身的原因了!————阵亡分割线————大侠你忧郁的气质已经出卖了你,这本辟邪剑谱拿去,练了你就有女票了兵哥哥不要难过!你还有基友们!老师,下课留我做作业吧真的菇凉~男朋友是被你红牌罚下了吗这位仁兄,回头看看这榜单,你真的中枪了真的恩,我们的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文艺单身汪,打包带走熊孩子一边凉快去……叔叔阿姨还单着呢明天,一个人买单号电影票,一个人玩连连看(消灭一对是一对),做个安静的美男","end": 0,"image": {"key": "293634e25fc4c886c957203dc8c9734d","name": "6a3fecd2-f565-4ff1-ba03-943170e5a301 (1).jpg","url": "http://nos-yx.netease.com/yixinpublic/pr_6cntqgf6tlv8yr6eybbbxg==_1447149809_77211016"},"start": 0,"subTitle": "惊爆!!!在光棍节这种虐狗的节日到来之际,有一份充满恶意的榜单华丽丽出炉了。咱们look look~此榜单一出,各路好汉躺枪无数!诸位男侠女侠纷纷表示终于找到自己单身的原因了!————阵亡分割线————大侠你忧郁的气质已经出卖了你,这本辟邪剑谱拿去,练了你就有女票了兵哥哥不要难过!你还有基友们!老师,下课留我做作业吧真的菇凉~男朋友是被你红牌罚下了吗这位仁兄,回头看看这榜单,你真的中枪了真的恩,我们的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文艺单身汪,打包带走熊孩子一边凉快去……叔叔阿姨还单着呢明天,一个人买单号电影票,一个人玩连连看(消灭一对是一对),做个安静的美男","subsubtype": 0,"title": "汪!解开你单身多年的谜团!"}]},"subtype": 101}
}
//第二个
{"audio": {"duration": 3189,"md5": "7ac7585a546a171b39a1be95c43d84b0","name": "60f9d8f4-16a6-4eca-b8e6-5e51c39f38691.aac","size": 11021,"url": "http://nos-yx.netease.com/yixinpublic/pr_zwx0ir6blam67ccfxn8urw==_1495775574_233545677"},"location": {"coordinate": "28.228272,112.938888","title": "长沙市"},"text": "你好","version": 1
}
// 第三个第四个与第二个雷同, 不写了。。。太TM长了

golang代码(这四串json是可以一起解的,所以一段代码就可以搞定)

package mainimport "github.com/tidwall/gjson"func main() {jsonstr1 := `{"richtext":{"data":{"items":[{"desc":"想拍出明星范可没有明星的气质怎么办!学学人家明星的出门装扮好伐?狗仔360度偷拍也能保持应有的气质,究竟是怎么办到的?一起学习下。明星出门最重要的是什么?装神秘(bi)!眼睛无神的时候,戴个墨镜。脸上没化妆的时候,戴个口罩,只露出迷人的眼睛!必要时戴个帽子,不仅可以耍帅,还可以遮盖下飞机上酣睡后凌乱的发型。看了上面这些图,你知道怎么提升拍照时的气质了吗?对!就是遮脸!最常见的就是戴个口罩,美丽的大眼睛,很迷人吧?没有口罩的时候,用手挡住半边脸,神秘感倍增。如果你有秀发,利用下,撩人!敷面膜也能让你气质倍增,慵懒的表情配上滑嫩的皮肤,你是个懂得生活的女孩子!你学会怎么拍神秘的蒙面照了吗?点击阅读","end":0,"image":{"key":"d2ed467715d06ae4b80b13e4eaff3eeb","name":"timg (4).jpg","url":"http://nos-yx.netease.com/yixinpublic/pr_0ok_9bi3l3z9b8felxt-jw==_1487148473_212641347"},"linkurl":"http://show.yixin.im/task/taskPage.html?sharesid=f6facd47763e9ae911cefbb036779c64&shareversion=1","start":0,"subTitle":"想拍出明星范可没有明星的气质怎么办!学学人家明星的出门装扮好伐?狗仔360度偷拍也能保持应有的气质,究竟是怎么办到的?一起学习下。明星出门最重要的是什么?装神秘(bi)!眼睛无神的时候,戴个墨镜。脸上没化妆的时候,戴个口罩,只露出迷人的眼睛!必要时戴个帽子,不仅可以耍帅,还可以遮盖下飞机上酣睡后凌乱的发型。看了上面这些图,你知道怎么提升拍照时的气质了吗?对!就是遮脸!最常见的就是戴个口罩,美丽的大眼睛,很迷人吧?没有口罩的时候,用手挡住半边脸,神秘感倍增。如果你有秀发,利用下,撩人!敷面膜也能让你气质倍增,慵懒的表情配上滑嫩的皮肤,你是个懂得生活的女孩子!你学会怎么拍神秘的蒙面照了吗?点击阅读","subsubtype":0,"title":"没有明星的命,但可以有明星的病"}]},"subtype":101}}`jsonstr2 := `{"images":[{"md5":"83b25df0edbddcde2769f1855b06b423","size":107241,"url":"http://nos-yx.netease.com/yixinpublic/pr_1qd4af7j14_nfcfpqplwaw==_1489977060_238390862"}],"text":"趁着这个莺飞草长,阳光正好的时节,小伙伴们记得抽空走出城市的喧嚣,郊游、赏花、放风筝,尽情享受四海八荒的浓情春意吧!"}`jsonstr3 := `{"audio":{"duration":3189,"md5":"7ac7585a546a171b39a1be95c43d84b0","name":"60f9d8f4-16a6-4eca-b8e6-5e51c39f38691.aac","size":11021,"url":"http://nos-yx.netease.com/yixinpublic/pr_zwx0ir6blam67ccfxn8urw==_1495775574_233545677"},"location":{"coordinate":"28.228272,112.938888","title":"长沙市"},"text":"你好","version":1}`jsonstr4 := `{"richtext":{"data":{"items":[{"desc":"惊爆!!!在光棍节这种虐狗的节日到来之际,有一份充满恶意的榜单华丽丽出炉了。咱们look look~此榜单一出,各路好汉躺枪无数!诸位男侠女侠纷纷表示终于找到自己单身的原因了!————阵亡分割线————大侠你忧郁的气质已经出卖了你,这本辟邪剑谱拿去,练了你就有女票了兵哥哥不要难过!你还有基友们!老师,下课留我做作业吧真的菇凉~男朋友是被你红牌罚下了吗这位仁兄,回头看看这榜单,你真的中枪了真的恩,我们的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文艺单身汪,打包带走熊孩子一边凉快去……叔叔阿姨还单着呢明天,一个人买单号电影票,一个人玩连连看(消灭一对是一对),做个安静的美男","end":0,"image":{"key":"293634e25fc4c886c957203dc8c9734d","name":"6a3fecd2-f565-4ff1-ba03-943170e5a301 (1).jpg","url":"http://nos-yx.netease.com/yixinpublic/pr_6cntqgf6tlv8yr6eybbbxg==_1447149809_77211016"},"start":0,"subTitle":"惊爆!!!在光棍节这种虐狗的节日到来之际,有一份充满恶意的榜单华丽丽出炉了。咱们look look~此榜单一出,各路好汉躺枪无数!诸位男侠女侠纷纷表示终于找到自己单身的原因了!————阵亡分割线————大侠你忧郁的气质已经出卖了你,这本辟邪剑谱拿去,练了你就有女票了兵哥哥不要难过!你还有基友们!老师,下课留我做作业吧真的菇凉~男朋友是被你红牌罚下了吗这位仁兄,回头看看这榜单,你真的中枪了真的恩,我们的征途,是星(huo)辰(gai)大(dan)海(shen)活捉一只文艺单身汪,打包带走熊孩子一边凉快去……叔叔阿姨还单着呢明天,一个人买单号电影票,一个人玩连连看(消灭一对是一对),做个安静的美男","subsubtype":0,"title":"汪!解开你单身多年的谜团!"}]},"subtype":101}}`ParseJson(jsonstr3)ParseJson(jsonstr1)ParseJson(jsonstr2)ParseJson(jsonstr4)}
func ParseJson(content string) {audio := gjson.Get(content, "audio")location := gjson.Get(content, "location")text := gjson.Get(content, "text")images := gjson.Get(content, "images")richtext:=gjson.Get(content,"richtext.data.items")/*richtext:=gjson.Get(content,"richtext")*/if audio.Exists() {duration := audio.Get("duration").String()url := audio.Get("url").String()name := audio.Get("name").String()println(duration, url, name)}if location.Exists() {coordinate := location.Get("coordinate").String()println("纬度", coordinate)}if text.Exists() {textstr := text.String()println(textstr)}if images.Exists() {re := images.Array()for _, v := range re {re := v.Get("url").String()println("图片url", re)}}if richtext.Exists(){re:= richtext.Array()for _, v := range re {re := v.Get("desc").String()re2:=v.Get("image.url").String()println("desc", re)println("富文本内置图片URL",re2)}}}

作者:送你一碗大麦茶
链接:https://www.jianshu.com/p/ef3fcf94295b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://my.oschina.net/u/3553591/blog/1625040

突然发现一个很好用Golang的json库相关推荐

  1. 发现一个 很好的网站,可以画漫画。

    发现一个 很好的网站,可以画漫画. http://www.toondoo.com/Home.toon

  2. 发现一个很强的国产软件。可以给视频加动画大头贴

    发现一个很好的国产软件, 叫拍拍看,有中文版和英文版,却被众人当成了国外软件,还认为中文的免费版是国人盗版的. 中国人真是越来越贱了. 看到电脑报和电脑爱好者上介绍这个就去看了看,英文网址http:/ ...

  3. 再测Golang的JSON库

    2019独角兽企业重金招聘Python工程师标准>>> 写项目一直需要进行序列化,听到了,也看到了很多同学老师对各个golang的json库进行测评.那本人为什么还要继续进行这一次测 ...

  4. 一个好用的C++的json库

    此文首发于我的个人博客:一个好用的C++的json库 - zhang0peter的个人博客 今天在找可以在C++中用的JSON库. 一个比较好用的传统的JSON库是JsonCpp, GitHub地址: ...

  5. 极力推荐一个简单好用的C++JSON库

      极力推荐一个简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲.CJsonObject是个优秀的C++JSON库,也许会是你见过的最为简单易 ...

  6. 发现一个很奇怪的现象,MyBaits 的 insert方法一直返回-2147482646

    点击关注公众号,Java干货及时送达来源:cnblogs.com/wyq178/p/8652443.html 前几天在做项目demo的时候,发现有一个很奇怪的现象: 就是MyBatis发现更新和插入返 ...

  7. 发现一个很好的工具——VNN

    网站地址是:http://www.vnn.cn/ 下面有一篇关于这个软件的文章: 一.动态域名DIY VNN的出现给那些希望用自己的电脑作服务器建立个人的网站内网用户带来了福音,以前内网用户想用自己的 ...

  8. 发现一个很有趣的事情

    如果说让我们列一个单子,我们会什么,只要我们想,我们可以列出很多很多.但是如果让我们列一个单子我们不会什么,就有趣了,我们知道自己很多不知道,但是单子上列不出来多少,因为我们能列出来的,一定是我们听说 ...

  9. 发现一个很nice的API调试工具

    以前进行接口发送调试都是用 Postman,最近发现一款很Nice的API工具,可以完全替代postman. 以下是官网介绍: ApiPost是一款支持模拟POST.GET.PUT等常见HTTP请求, ...

最新文章

  1. 6月书讯 | 如果有一本书伴随你十年编程,那一定是它
  2. 再见Navicat!这个工具才是YYDS!
  3. ICEfaces抄袭PrimeFaces
  4. js判断输入数字是否是整数,金额、数字
  5. 使用Eclipse开发Java Web过程中Debug调试的使用方法
  6. linux apache certbot,从操作系统软件包安装Certbot
  7. 互联网小团队创业启示录
  8. isis仿真软件怎么导入C语言,Proteus导入程序的操作方法
  9. springboot + h2 + vue + AceEditor + element-ui 数据库管理系统(DMS)- JavaWeb毕业设计|课程设计
  10. SQL 2008下载地址以及全新安装详细过程
  11. 高精度定位赋能行业创新,Petal Maps Platform 创新地图平台能力
  12. 第八届蓝桥杯C/C++程序设计本科B组决赛 ——瓷砖样式(填空题)【DP?我的暴力排列搜索】...
  13. 软件测试 — 常见的端口整理
  14. 代码精进之路-读后感
  15. 敏俊物联MJIOT-AMB-02 RTL8195M 高性能wifi模块
  16. 华为机试——翻译电话号码
  17. python中getattr()和setattr()的使用
  18. 计算机人事管理系统总概括,人事资源管理系统(计算机专业毕业设计).doc
  19. webgis开发智慧校园实现路径规划
  20. 【大数据面试】瞎说宝典

热门文章

  1. 瑞银报告 | 美国银行业科技支出:凡有的,还要加给他,叫他有余...
  2. python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
  3. python实现炫酷二维码
  4. Java CXF介绍与实例
  5. [Android系列—] 1. Android 开发环境搭建与Hello World
  6. 如何理解封装java_理解 Java 的三大特性之封装
  7. mysql 双机备份_mysql双机热备详解及延伸备份
  8. mysql导出excel出乱码_Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]...
  9. payload的使 常用xss_Sony某个深度子域上的XSS
  10. php和ajax实现聊天功能,怎么在PHP项目中使用jquery与ajax实现一个即时聊天功能