在 Python 中,可以创建字典并将其序列化为 JSON 对象,如下所示:example = { "key1" : 123, "key2" : "value2" }js = json.dumps(example)Go 是静态类型的,所以我们必须先声明对象模式:type Example struct { Key1 int Key2 string}example := &Example { Key1 : 123, Key2 : "value2" }js, _ := json.Marshal(example)有时,具有特定模式(类型声明)的对象(结构)只需要在一个地方而不是其他地方。我不想产生大量无用的类型,也不想为此使用反射。Go 中是否有任何语法糖提供了一种更优雅的方式来做到这一点?
2 回答
浮云间
TA贡献1829条经验 获得超4个赞
您可以使用地图:
example := map[string]interface{}{ "Key1": 123, "Key2": "value2" }
js, _ := json.Marshal(example)
您还可以在函数内部创建类型:
func f() {
type Example struct { }
}
或者创建未命名的类型:
func f() {
json.Marshal(struct { Key1 int; Key2 string }{123, "value2"})
}
动漫人物
TA贡献1815条经验 获得超10个赞
您可以使用匿名结构类型。
example := struct {
Key1 int
Key2 string
}{
Key1: 123,
Key2: "value2",
}
js, err := json.Marshal(&example)
或者,如果您准备失去某种类型安全性,则map[string]interface{}:
example := map[string]interface{}{
"Key1": 123,
"Key2": "value2",
}
js, err := json.Marshal(example)
- 2 回答
- 0 关注
- 358 浏览
添加回答
举报
0/150
提交
取消