在golang中定义结构

Define structure in golang

我正在开展一个项目,我在其中接收以下格式的有效负载数据:

"name":"John",
"date":"2022-04-14",
"price":200,
"dependencies":[
{
"element_1":{
"items":[2,4],
"pricing":[1,2]
}
},
{
"element_2":{
"items":[5,4],
"pricing":[1,6]
}
}
]

我应该如何为此定义结构?如果你知道请告诉我。谢谢!

这部分

"dependencies":[
{
"element_1":{
"items":[2,4],
"pricing":[1,2]
}
},
{
"element_2":{
"items":[5,4],
"pricing":[1,6]
}
}
]

看起来像


type XXX struct {
  Dependencies []map[string]Dependency `json:"dependencies"`
}

type Dependency struct {
Items []int // json…
Pricing []int // json…
}

但我不确定……element_x 是否是动态的。如果是预定义的就可以了。

如果你的json是

{
    "name": "John",
    "date": "2022-04-14",
    "price": 200,
    "dependencies":
    [
        {
            "element_1":
            {
                "items":
                [
                    2,
                    4
                ],
                "pricing":
                [
                    1,
                    2
                ]
            }
        },
        {
            "element_2":
            {
                "items":
                [
                    5,
                    4
                ],
                "pricing":
                [
                    1,
                    6
                ]
            }
        }
    ]
}

然后你可以像这样创建结构

type DemoStruct struct {
    Name         string       `json:"name"`        
    Date         string       `json:"date"`        
    Price        int64        `json:"price"`       
    Dependencies []Dependency `json:"dependencies"`
}

type Dependency struct {
    Element1 *Element `json:"element_1,omitempty"`
    Element2 *Element `json:"element_2,omitempty"`
}

type Element struct {
    Items   []int64 `json:"items"`  
    Pricing []int64 `json:"pricing"`
}