Go 从存储解组函数输出的变量中删除所有非字母数字字符
我通过JSON包解析和存储JSON数据,并使用func Unmarshal获得所需的输出。 不幸的是,我得到的结果是: &{6} 我只想 六, 下面是我的一些代码:Go 从存储解组函数输出的变量中删除所有非字母数字字符,go,Go,我通过JSON包解析和存储JSON数据,并使用func Unmarshal获得所需的输出。 不幸的是,我得到的结果是: &{6} 我只想 六, 下面是我的一些代码: type AutoGenerated struct { Total int `json:"total"` } func getStations(body []byte) (*AutoGenerated, error) { var s = new(AutoGenerated) err := j
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。您遇到的问题是关于格式化谓词-
%v
-将详细地显示变量的外观。您也可以尝试使用%+v
和%#v
,但您需要的是%s
(如果实现了stringer),或者调用一个结构字段,据我所见和猜测
是指向结构的唯一指针,其中包含数字6(&{6}
,用这种方式表示)%v
-如果您尝试在没有Stringer接口实现的结构上使用&{%!s(int=6)}
,则会得到此结果%s
-&{field:6}
还将生成结构的字段名%+v
这显示了(我的示例)一个结构名、包和值,它代表&struct{v int}{v:6}
%\v
func main() {
s := &struct {
v int
}{6}
fmt.Printf("%d", s.v)
}
输出
6
,但需要调用字段而不是结构。如果不需要整个结构,请不要打印整个结构。只打印s.Total。