我知道Golang中有Struct.但就我所知,你必须定义结构:

type Circle struct{
  x,y,r float64
}

我想知道如何声明Struct中不存在的新变量:

circle := new(Cirlce)
circle.color = "black"

解决方案:

您需要使用 map(类型为map [string] interface {}) 来处理动态JSON. 以下是创建新地图的示例:

// Initial declaration
m := map[string]interface{}{
"key": "value",}

// Dynamically add a sub-map
m["sub"] = map[string]interface{}{
"deepKey": "deepValue",}

将JSON解组到地图中如下所示:

var f interface{}
err := json.Unmarshal(b,&f)

上面的代码会在f中留下一个地图,其结构类似于: