加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang动态创建Struct的成员

发布时间:2020-12-16 19:04:29 所属栏目:大数据 来源:网络整理
导读:我对Golang很新.我知道Golang中有Struct.但就我所知,你必须定义结构 type Circle struct{ x,y,r float64} 我想知道如何声明Struct中不存在的新变量 circle := new(Cirlce)circle.color = "black" Thx提前. 您需要使用map(类型为map [string] interface {})来
我对Golang很新.我知道Golang中有Struct.但就我所知,你必须定义结构
type Circle struct{
    x,y,r float64
}

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

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

Thx提前.

您需要使用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中留下一个地图,其结构类似于:

f = map[string]interface{}{
    "Name": "Wednesday","Age":  6,"Parents": []interface{}{
        "Gomez","Morticia",},}

您将需要使用类型断言来访问它,否则Go将不知道它是一张地图:

m := f.(map[string]interface{})

您还需要在从地图中拉出的每个项目上使用断言或类型开关.处理非结构化JSON是一件麻烦事.

更多信息:

> https://blog.golang.org/json-and-go
> https://godoc.org/encoding/json#Unmarshal

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读