分享一个无需定义结构体解析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 协议》,转载必须注明作者和本文链接
开发包之前可以多搜索一下,已经有很多轮子了
可以看看和