分享一个无需定义结构体解析json的包 | go 技术论坛-金年会app官方网

说明

由于长期习惯php操作json,可以直接解析并静默处理异常返回一个默认值,不习惯go需要先定义结构体再解析json的方式,于是有了此包。

使用示例

// 获取包:go get github.com/xing393939/jsonobject
import "github.com/xing393939/jsonobject"
jsoncontent := `{
    "ismaster": false, 
    "metadata": {
        "name": "oracle"
    },
    "tags": ["db", "sql"]
}`
jo := jsonobject.newjsonobject(jsoncontent)
println(jo.getbool("ismaster"))
println(jo.getjsonobject("metadata").getstring("name"))
joarr := jo.getjsonobjectslice("tags")
for _, jorow := range joarr {
    println(jorow.getstring())
}
jsoncontent = `[{"name":"john", "score":100}, {"name":"tom", "score":200}]`
jo = jsonobject.newjsonobject(jsoncontent)
joarr = jo.getjsonobjectslice()
for _, jorow := range joarr {
    println(jorow.getstring("name"), jorow.getint("score"))
}

类方法说明

类方法是可变参数:

  • 如果不传参数:就表示把当前jsonobject对象转换成对应的string、int、bool等;
  • 如果传一个参数param:则表示获取当前jsonobject对象元素键名为param的键值。
类方法 如果类型不匹配
getstring 返回空字符
getint 返回0
getbool 返回false
getint64 返回0
getfloat64 返回0
getint64 返回0
getjsonobject (类型一定匹配)
getjsonobjectslice 返回空切片
本作品采用《cc 协议》,转载必须注明作者和本文链接
讨论数量: 1

开发包之前可以多搜索一下,已经有很多轮子了

可以看看和

3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图