使用 gjson 包,铸造 gjson。字符串的结果对象很简单,但我不知道如何将对象转换为字符串切片。例如:j.Get("str").String()package mainimport ( "fmt" "github.com/tidwall/gjson")func main() { j := `{"array": ["a","b","c"]}` gj := gjson.Parse(j).Get("array").Value() for k, v := range gj { fmt.Println(k, v) }}这失败了,因为 Value() 将数组转换为无法覆盖的接口。
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
在 API 文档中,的结果是 结果()
类型。该软件包支持各种适用于该类型的便捷函数。例如,您只需要数组()
方法Parse().Get()
func main() {
j := `{"array": ["a","b","c"]}`
gj := gjson.Parse(j).Get("array").Array()
for k, v := range gj {
fmt.Println(k, v)
}
}
请注意,该包适用于特定于 JSON 的类型,而不是一般类型的类型。Go
在 JSON 上下文中,返回的值为数组类型。因此,如果您需要一个类型,请使用 Result.Str 属性创建自己的类型[]string
func main() {
j := `{"array": ["a","b","c"]}`
var result []string
gj := gjson.Parse(j).Get("array").Array()
for _, v := range gj {
result = append(result, v.Str)
}
}
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消