在Go语言程序中使用gojson来解析JSON格式文件
作者:goldensun 发布时间:2023-07-02 14:19:52
gojson是快速解析json数据的一个golang包,你使用它可以快速的查找json内的数据
安装
go get github.com/widuu/gojson
使用简介
结构
type Js struct {
data interface{}
}
(1) func Json(data) *Js data为string类型,初始化Js结构,解析json并且return Js.data
json := `{"from":"en","to":"zh"}`
c1 := gojson.Json(json) //&{map[from:en to:zh]}
(2) func (*Js) Get() *js 获取简单json中的某个值,递归查找,return Js.data
json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`
c2 := gojson.Json(json).Get("trans_result").Get("dst")
fmt.Println(c2) //&{今天}
c2 := gojson.Json(json).Get("from")
fmt.Println(c2) //&{en}
(3) func (*Js)Tostring()string 将单个数据转化成string类型,因为string类型转其它类型都比较好转就让数据返回string
c2 := gojson.Json(json).Get("from").Tostring()
fmt.Println(c2) //en
(4) func (j *Js) Getpath(args ...string) *Js 通过输入string的多个参数来获取某个值,json数据一定要是递归的
c4 := gojson.Json(json).Getpath("trans_result", "src").Tostring()
fmt.Println(c4) //today
(5) func (j *Js) Arrayindex(i int) string 获取Json数据中数组结构的值,根据输入的num来返回对应的值,仅限于处理{“result”:[“src”,”today”,”dst”,”\u4eca\u5929″]}中[]内的值
json := `{"from":"en","to":"zh","trans_result":{"src":"today","dst":"\u4eca\u5929"},"result":["src","today","dst","\u4eca\u5929"]}`
c7 := gojson.Json(json).Get("result").Arrayindex(1)
fmt.Println(c7) //src
(6) func (j *Js) Getkey(key string, i int) *Js 这个函数是针对数据中有重复数据,取值,使用js.data必须是[]interface{}类型,这个是百度翻译时候返回的js可能会用到
json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`
c8 := gojson.Json(json1).Get("trans_result").Getkey("src", 1).Tostring()
fmt.Println(c8) //则返回trans_result第一组中的src today
(7) func (j *Js) ToArray() (k, d []string)将json数据转换成key []string{} value []string{} 一一对应的数组,只能使用到二级 不能到多级
c9k, c9v := gojson.Json(json1).Get("trans_result").ToArray()
fmt.Println(c9k, c9v) //[src dst src dst] [today 今天 tomorrow 明天]
c3k, c3v := gojson.Json(json).Getindex(1).ToArray()
fmt.Println(c3k, c3v) // [from] [en]
(8) func (j *Js) Getindex(i int) *Js 根据i返回json内的数据,可以逐级查找
json1 := `{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"},{"src":"tomorrow","dst":"\u660e\u5929"}]}`
c10 := gojson.Json(json1).Getindex(3).Getindex(1).Getindex(1).Get("src").Tostring()
fmt.Println(c10) //today
(9) func (j *Js) StringtoArray() []string 将{“result”:[“src”,”today”,”dst”,”\u4eca\u5929″]}数据json中的result对应的数据,返回成[]string的slice
c11 := gojson.Json(json).Get("result").StringtoArray()
fmt.Println(c11) //[src today dst 今天]
(10) func (j *Js) Type() 打印测试用,打印数据类型
gojson.Json(json).Get("result").Type() //[]interface {}


猜你喜欢
- MySQL是一个大数据库。有的数据库里面个有种各样的数据。如果不按照规定划分好会显得看起来很乱。凡是东西都要通过整理才能规矩,每一堆数据整理
- 在工作中。在做数据集时,需要对图片进行处理,照相的图片我们只需要特定的部分,所以就想到裁剪一种所需的部分。当然若是图片有规律可循则使用ope
- 初学Python,写了一小段程序,在pycharm中debug一直报错,在网上搜了很久,尝试多种方法后还是没有用。尝试了很久之后,发现这个问
- 1、如果之前已经安装我们先卸载一下yum -y remove php*2、由于linux的yum源不存在php7.x,所以我们要更改yum源
- 本篇内容介绍了Python编程语言的优势和不足。首先我们来了解什么是Python?Python是一种面向对象的高级编程语言,具有集成的动态语
- 二进制包方式安装一、首先检查服务器上是否安装有mysql:第一步:查看mysql安装版本rpm -qa|grep -i mysql第二步:卸
- 结合mysql数据库查询,实现分页效果@user.route("/user_list",methods=['PO
- 初学vue自己新建一个vue项目来做学习demo。不过在编写代码时一直出现空格不规范的警告。严重影响初学者的热情。错误如下图所示。(这样的错
- 本文实例为大家分享了python实现日历效果的具体代码,供大家参考,具体内容如下一、代码编程过程1、根据年月日算出星期几def get_we
- 现在需要一个写文件方法,将selenium的脚本运行结果写入test_result.log文件中首先创建写入方法def write_resu
- 前言刚刚看了EuroPython 2017一篇演讲,Why You Don't Need Design Patterns in Py
- IE 一如既往地带来问题。真的,我觉得 IE 坚持自己的一套无所谓,不支持或者不完全支持标准也无所谓。但是,IE6 IE7 IE8 这三个版
- MySQL连接查询相信大家都有所了解,连接查询是在数据库查询操作的时候经常用到的,下面就为您介绍MySQL连接查询mysql连接
- 前言相信大家都知道当声明一个变量,并且没有给赋值的情况下,它的初始值是undefined。但是在javascript中,怎么检查一个值是否为
- 其中一种原因:pycharm没有设置系统解析器解决方法打开pycharm->File->Settings->Project
- 本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:def isISBN(isbn):
- 作用:pygame一般用来做游戏注意:1.在使用pygame提供的功能之前,需要调用init方法2.在游戏结束前需要调用 quit 方法py
- 前言mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。错误提示:this
- getattr函数(1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用。>>> li = [&q
- 1.微博三方登录流程1.1 前端获取认证code1.在Vue页面加载时 动态发送请求获取微博授权url2.django收到请求的url后,通