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

在 go 中制作具有不同数据类型的地图,以便使用 json 数据发出发布请求

在 go 中制作具有不同数据类型的地图,以便使用 json 数据发出发布请求

Go
跃然一笑 2022-11-28 14:46:19
我正在尝试创建一个键值映射,然后在 Go/Golang 中发出 HTTP post 请求之前对其进行 json.Marshaljson数据{"name":"bob","stream":"science","grades":[{"maths"    :"A+",           "science"  :"A"}]}映射的结构就像是,它有字符串类型的键和值是字符串和一个切片,切片本身有一个映射。因此,就 python 而言,我想制作一个具有键值对的字典,但最后一个键的值是一个列表,该列表中有一个字典。代码的一部分是这样的:postBody, err := json.Marshal(map[string]interface{}{        "name":name,        "stream":stream,        "grades":[{sub1  :sub1_score,                   sub2  :sub2_score}]        })但未能制作出这种复杂的地图。
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

postBody, err := json.Marshal(map[string]interface{}{

    "name":   name,

    "stream": stream,

    "grades": []map[string]interface{}{{

        sub1: sub1_score,

        sub2: sub2_score,

    }},

})

或者,如果您想避免重新输入map[string]interface{}


type Obj map[string]any


postBody, err := json.Marshal(Obj{

    "name":   name,

    "stream": stream,

    "grades": []Obj{{

        sub1: sub1_score,

        sub2: sub2_score,

    }},

})

https://go.dev/play/p/WQMiE5gsx9w


查看完整回答
反对 回复 2022-11-28
?
桃花长相依

TA贡献1860条经验 获得超8个赞

Go 是一种静态类型语言。


空接口可以保存任何类型的值。但是您的嵌套列表没有类型。


[{sub1  :sub1_score, sub2  :sub2_score}]

[]map[string]interface{}{

    {

        sub1: sub1_score,

        sub2: sub2_score,

    },

}


查看完整回答
反对 回复 2022-11-28
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号