我需要在Go中创建一个嵌套的JSON。然后,在运行时,将值附加到内部对象中,这些值将具有不同的类型。这就是我发起接口{}的原因。
i := map[string]interface{}{"name":"name"}
t := map[string]interface{}{"internal":internal_map}
if somestuff != ""{
template_map["internal"]["somestuff"] = somestuff
}
if somestuff2 != true{
template_map["internal"]["somestuff2"] = somestuff2
}
现在,由于type interface {} does not support indexing
错误,上面的代码无法运行。
我需要所有3个嵌套的JSON,不同类型和内部对象的运行时构造。
答案 0 :(得分:1)
将第二行更改为
t := map[string]map[string]interface{}{"internal":internal_map}
像t["internal"]["key_in_internal_map"]
一样访问它。
这实际上是地图的地图。您可以根据需要添加任意数量的嵌入级别。
Goplayground example。 虽然我建议制作嵌套结构以避免地图链接。