如何在 Go 语言中不使用 struct 生成 JSON?
在 go 语言中,使用 struct 来生成 json 是常见的方法。但对于拥有大量 json 结构的情况,这种方式显得过于繁琐。对于那些寻找更灵活解决方案的人来说,があります。
map[string]interface{}
map[string]interface{} 类型提供了一种无需使用 struct 即可生成 json 的方法。它是一个键值对集合,其中键是字符串,值可以是任何类型的值。以下示例演示了如何使用 map[string]interface{} 生成 json:
import "encoding/json" func main() { b, err := json.marshal(map[string]interface{}{ "a": "aa", "b": "bb", "c": "cc", "d": "dd", }) if err != nil { panic(err) } fmt.println(string(b)) }
输出结果:
{"a":"aa","b":"bb","c":"cc","d":"dd"}
使用 map[string]interface{} 的优点在于其灵活性。它允许你创建自定义 json 结构,而无需定义复杂的 struct 类型。这对于生成需要在运行时动态创建的 json 数据特别有用。