从存储解组函数输出的变量中删除所有非字母数字字符

我通过 json 包解析和存储 JSON 数据,并使用 func Unmarshal 来获取所需的输出。不幸的是我得到的输出是:


&{6}


我只想


6.


这是我的一些代码:


type AutoGenerated struct {

    Total      int    `json:"total"`

}


func getStations(body []byte) (*AutoGenerated, error) {

    var s = new(AutoGenerated)

    err := json.Unmarshal(body, &s)

    if(err != nil){

                fmt.Println("whoops:", err)

    }

    return s, err

}


func main() {

    s, err := getStations([]byte(body))


    fmt.Printf("%v, %T", s, s)


    s, err := getStations([]byte(body))

}

我无法使用 regexp 包中的 reg.ReplaceAllString 函数,因为这不是字符串。好像是指针什么的。body 存储 json。


狐的传说
浏览 100回答 1
1回答

大话西游666

您遇到的问题是关于格式化动词 - %v- 将向您详细展示变量的外观。您也可以尝试使用%+vand ,但据我所见和猜测,%#v您需要的是(如果实现了 stringer)或调用结构体字段。%s&{6}只是指向其中包含数字 6 的结构体的指针(%vwith 以这种方式表示)。&{%!s(int=6)}- 如果您尝试%s在没有 Stringer 接口实现的结构上使用,您将会得到这个。&{field:6}-%+v还将生成结构的字段名称。&struct { v int }{v:6}这显示了(我的示例)结构名称、包和值 - 这就是%#v.我建议直接调用struct field。func main() {    s := &struct {        v int    }{6}    fmt.Printf("%d", s.v)}输出6,但您需要调用 field 而不是 struct。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go