我通过 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。
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
您遇到的问题是关于格式化动词 - %v
- 将向您详细展示变量的外观。您也可以尝试使用%+v
and ,但据我所见和猜测,%#v
您需要的是(如果实现了 stringer)或调用结构体字段。%s
&{6}
只是指向其中包含数字 6 的结构体的指针(%v
with 以这种方式表示)。&{%!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。
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消