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)}}}

go语言 json -转载相关推荐

  1. go语言json的使用技巧

    本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法. 基本的序列化 首先我们来看一下Go语言中json.Marshal()(系列化)与json.Un ...

  2. go语言JSON验证器

    go语言JSON验证器 转自:http://studygolang.com/articles/9621 分析 既然要验证JSON的有效性,那么必然需要清楚的知道JSON格式,这个在JSON官网已经给我 ...

  3. 易语言json置入_易语言json操作模块源码

    易语言json操作模块源码 系统结构:初始化,解析,到文本,置属性,置属性对象,置属性数值,取属性数值,取属性对象,取通用属性,取属性,成员数,加成员,取成员,取成员文本,置成员,删成员,置类型,赋值 ...

  4. 你需要知道的那些go语言json技巧

    本文总结了我平时在项目中遇到的那些关于go语言JSON数据与结构体之间相互转换的问题及解决办法. 基本的序列化 首先我们来看一下Go语言中json.Marshal()(系列化)与json.Unmars ...

  5. c语言JSON库 Parson的编译和使用

    c语言JSON库 Parson的编译和使用 最近一直学习ndk,Android肯定会用到json,这里介绍一个c语言写成的JSON解析库 Parson介绍 Parson is a lighweight ...

  6. go语言json序列化

    go语言json序列化 key-value (结构体,map,切片)序列化为json字符串操作 package mainimport ("encoding/json""f ...

  7. python 下划线转驼峰,Go语言json编码驼峰转下划线、下划线转驼峰的实现

    一.需求 golang默认的结构体json转码出来,都是根据字段名生成的大写驼峰格式,但是一般我们最常用的json格式是小写驼峰或者小写下划线,因此,我们非常需要一个统一的方法去转换,而不想挨个写js ...

  8. C语言 JSON数据格式解析

    C语言 JSON数据格式解析 一.如何用c语言编写与解析json数据格式,这篇主要是使用一个第三方的json库,本人已经上传至csdn,下载链接在下方. 二.json库代码文件下载地址(json.ra ...

  9. C语言json格式校验

    C语言json格式校验 最近用到json格式数据传输信息,在C语言中使用cjson解析json字符串,若json格式不正确,会使整个进程直接挂掉.想到能否在解析前先进行格式校验,通过后再解析,查找资料 ...

最新文章

  1. 字符串截取固定长度的方法
  2. javascript-arguments不确定参数使用
  3. docker 启动petalinux镜像脚本
  4. JVM调优:定位垃圾的常用算法
  5. 各种没有由来的问题,干!
  6. gbdt 算法比随机森林容易_随机森林与GBDT
  7. matlab 三维 作图 坐标轴_MATLAB学习——MATLAB中的三维绘图指令
  8. 设定pic单片机端口为输入_PIC单片机IO端口的软件/硬件可靠性使用方法讨论
  9. 习题3.11 表达式转换 (25分)
  10. java提示框easyui风格_[Java教程]jQuery EasyUI 提示框(Messager)用法
  11. listen函数的第二个参数_signal(SIGPIPE,?SIG_IGN)listen函数中backlog参数分析
  12. android 扫描ble设备,Android设备扫描后列出BLE设备
  13. linux esp分区,win10esp分区多大合适
  14. 如何给pdf添加目录
  15. 【c语言】解释为什么32767+1=-32768
  16. Tivoli Storage Manager安装配置
  17. leetcode 306 累加数(js)
  18. [EE261学习笔记] 13.离散傅里叶逆变换及离散傅里叶变换的一些性质
  19. 雷林鹏分享jQuery EasyUI 数据网格 - 启用行内编辑
  20. This primary key of “id“ is primitive

热门文章

  1. 美国的非农数据一般会在几点发布
  2. lstm中look_back的大小选择_基于时空关联度加权的LSTM短时交通速度预测
  3. 怎样给黑白照片上色?手把手教你上色
  4. 【数据结构与算法】之深入解析“滑动谜题”的求解思路与算法示例
  5. Sql Server中的用户名和登录名
  6. Practical GameMaker Projects 免积分下载
  7. python list转josn,以及读写txt、json文件
  8. python调用小票打印机_PyQt5中使用Qprinter打印热敏小票
  9. MFC——画笔和画刷
  10. Xtrabackup使用指南 InnoDB数据备份工具