我需要在具有以下结构的 JSON 对象中发送一个数组:{"extent":[-76.0624694824, 36.8856620774, -75.9800720215,36.9449529607]}我该怎么做?我不能使用典型的:var jsonprep string = `{"extent":` + []float32{-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607} + `}`var jsonStr = []byte(jsonprep)因为类型不匹配。我试图将它发送到一个服务器,当我收到错误时,它希望它是一个数组,The request content was malformed:Expected List as JsArray, but got "[-76.0624694824, 36.8856620774, -75.9800720215,36.9449529607]"
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
如果您预计数组会在某个时候发生变化,请考虑使用 encoding/json 包
然后,您可以创建 JSON 对象的 struct 原型,然后使用 json.Marshal() 将其序列化为 JSON 对象的 []byte 表示以进行传输(无论是通过 stdio、tcp 还是其他方式)。
例如
type ExampleJSON struct {
Extent []float32 `json:"extent"`
}
func main(){
var ex := &ExampleJSON{
[]float32{-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607}
}
jsonBytes, err := json.Marshal(ex)
if err != nil {
//...
}
}
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
我多虑了。答案是:
var jsonprep string = `{"extent":[-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607]}`
- 2 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消