快速构造struct/json

2024-03-28 17:27:12 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,可以创建字典并将其序列化为JSON对象,如下所示:

example = { "key1" : 123, "key2" : "value2" }
js = json.dumps(example)

Go是静态类型的,因此我们必须首先声明对象架构:

^{pr2}$

有时,只需要在一个地方而不需要在其他地方使用具有特定模式(类型声明)的对象(结构)。我不想产生大量无用的类型,也不想为此使用反射。在

在Go中有没有语法糖可以提供一种更优雅的方式来实现这一点?在


Tags: 对象json声明go类型字典序列化example
2条回答

可以使用匿名结构类型。在

example := struct {
    Key1 int
    Key2 string
}{
    Key1: 123,
    Key2: "value2",
}
js, err := json.Marshal(&example)

或者,如果您准备丢失一些类型安全性,map[string]interface{}

^{pr2}$

您可以使用地图:

example := map[string]interface{}{ "Key1": 123, "Key2": "value2" }
js, _ := json.Marshal(example)

也可以在函数内部创建类型:

^{pr2}$

或创建未命名类型:

func f() {
    json.Marshal(struct { Key1 int; Key2 string }{123, "value2"})
}

相关问题 更多 >