JSON 数据如下:
{"xxx_xxx":{"asks":[[0.00000315,1022.53968253],[0.00000328,200],[0.00000329,181.70008541]],"bids":[[0.00000254,2685.36319716],[0.00000253,600],[0.0000025,1000]]}}
结构为:
type Depth struct {
XXX_XXX struct {
Asks []struct {
Num0 float64 `json:"0"`
Num1 float64 `json:"1"`
} `json:"asks"`
Bids []struct {
Num0 float64 `json:"0"`
Num1 float64 `json:"1"`
} `json:"bids"`
} `json:"xxx_xxx"`
}
当尝试在 go-lang 中映射时,如下所示:
json.Unmarshal(r, &depth)
将得到全零数组,如下所示:
{{[{0 0} {0 0} {0 0} ] [{0 0} {0 0} {0 0} ]}}
结果没有达到我的预期。
如何解决这个问题呢?
这是操场上的代码:https://play.golang.org/p/wxFV6Mv26t https://play.golang.org/p/wxFV6Mv26t
买价和买价是数组类型而不是结构类型。
这是一个工作游乐场示例 https://play.golang.org/p/wbx_5pplNl
下面是一个添加了Nums
类型有一个One
and Two
您可以使用的方法,因为这些似乎是您期望的格式。您可以在这些方法中添加一些错误检查,以确保格式也正确。,
type Depth struct {
XXX XXX `json:"xxx_xxx"`
}
type XXX struct {
Asks []Nums `json:"asks"`
Bids []Nums `json:"bids"`
}
type Nums []float64
func (n Nums) One() float64 {
if len(n) > 0 {
return n[0]
}
return 0
}
func (n Nums) Two() float64 {
if len(n) > 1 {
return n[1]
}
return 0
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)