go 语言中 对于json优雅的取值
go语言中对于json的取值很不方便,需要不停的 类型判断,键的判断…
其实把 程序本来就是帮助人服务的,弄那么复杂 实在是有点难受,不过呢。 难受的不是我一个,以下就是其他难受的人做出来的第三方库。gjson
安装 gjson
go get -u github.com/tidwall/gjson |
使用教程:
使用 GJSON 来从一个包含数组的 JSON 字符串中提取数组中的字典(在 JSON 中通常称为对象)或数组中的某个对象的特定字段是非常简单的。假设你有一个如下的 JSON 字符串
{ |
如果你想获取 users 数组中的第一个用户的 name 字段,你可以这样做:
package main |
在这个例子中,users.0.name 是一个路径,它指定了我们要从 JSON 字符串中提取的数据的位置。这里的 0 是数组的索引,用于指定我们要获取的第一个对象。
gjson.Get(jsonStr, "users.#") 使用了 # 通配符来获取数组中的所有元素。然后,我们使用 ForEach 方法遍历这些元素,并打印出每个用户的 name 字段。
注意,gjson.Result 类型有一个 String() 方法用于将结果转换为字符串,但也有其他方法,如 Int(), Bool(), Float(), Array(), Map() 等,用于处理不同类型的值。如果路径不存在或值不是预期的类型,这些方法通常会返回零值或空值,并不会导致 panic。