我需要在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]"
答案 0 :(得分:2)
如果您希望数组在某些时候发生变化,请考虑使用encoding / json包
然后你可以创建你的JSON对象的结构原型,然后使用json.Marshal()将它序列化为JSON对象的[]字节表示以进行传输(无论是通过stdio,tcp,等等)。
e.g。
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 {
//...
}
}
答案 1 :(得分:-1)
我在思考它。答案是:
var jsonprep string = `{"extent":[-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607]}`