为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕码人2483693 2021-12-27 10:39:15
我需要在具有以下结构的 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 {

        //...

    }

}


查看完整回答
反对 回复 2021-12-27
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我多虑了。答案是:

var jsonprep string = `{"extent":[-76.0624694824, 36.8856620774, -75.9800720215, 36.9449529607]}`



查看完整回答
反对 回复 2021-12-27
  • 2 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信