gjson: cast json array 作为切片

使用 gjson 包,铸造 gjson。字符串的结果对象很简单,但我不知道如何将对象转换为字符串切片。例如:j.Get("str").String()


package main


import (

    "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() 将数组转换为无法覆盖的接口。


慕姐4208626
浏览 116回答 1
1回答

白板的微信

在 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 属性创建自己的类型[]stringfunc 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)    }    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go