使用数组作为值构建 JSON 对象

我需要在具有以下结构的 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]"


慕码人2483693
浏览 218回答 2
2回答

倚天杖

如果您预计数组会在某个时候发生变化,请考虑使用 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 {        //...    }}

米琪卡哇伊

我多虑了。答案是:var jsonprep string = `{"extent":[-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607]}`
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go