为了账号安全,请及时绑定邮箱和手机立即绑定

gjson: cast json array 作为切片

gjson: cast json array 作为切片

Go
慕姐4208626 2022-09-26 17:19:45
使用 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)

    }

    

}


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信