在Golang中向嵌套的json添加条目

时间:2017-08-26 22:13:53

标签: json go interface

我需要在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,不同类型和内部对象的运行时构造。

1 个答案:

答案 0 :(得分:1)

将第二行更改为

t := map[string]map[string]interface{}{"internal":internal_map}

t["internal"]["key_in_internal_map"]一样访问它。

这实际上是地图的地图。您可以根据需要添加任意数量的嵌入级别。

Goplayground example。 虽然我建议制作嵌套结构以避免地图链接。