如何解组动态键
How unmarshal dynamic keys
我有一个具有以下结构的 yaml 文件:
mappings:
extgroup1:
- somescope1
- somescope2
someextgroup:
- somescope3
allusers:
- somescope1
映射基本上是一个数组,但结构只是一组动态键。我想将其解组为一个新数据类型的数组,如下所示:
type ExternalGroupMapping struct {
ExternalGroup string
Scopes []string
}
所以,它看起来像:
[]Mappings{
ExternalGroupMapping{
ExternalGroup: "extgroup1"
Scopes: []string{"somescope1", "somescope2"}
},
ExternalGroupMapping{
ExternalGroup: "someextgroup"
Scopes: []string{"somescope3"}
},
ExternalGroupMapping{
ExternalGroup: "allusers"
Scopes: []string{"somescope1"}
}
}
类似于 jq
中的 to_entries
这样的事情可能吗?甚至不知道从哪里开始。
谢谢!
如果没有自定义封送处理,您可以通过将动态键映射到映射键来实现。每个映射似乎都是一个范围数组,因此:
type Mappings struct {
Mappings map[string][]string `yaml:"mappings"`
}
我有一个具有以下结构的 yaml 文件:
mappings:
extgroup1:
- somescope1
- somescope2
someextgroup:
- somescope3
allusers:
- somescope1
映射基本上是一个数组,但结构只是一组动态键。我想将其解组为一个新数据类型的数组,如下所示:
type ExternalGroupMapping struct {
ExternalGroup string
Scopes []string
}
所以,它看起来像:
[]Mappings{
ExternalGroupMapping{
ExternalGroup: "extgroup1"
Scopes: []string{"somescope1", "somescope2"}
},
ExternalGroupMapping{
ExternalGroup: "someextgroup"
Scopes: []string{"somescope3"}
},
ExternalGroupMapping{
ExternalGroup: "allusers"
Scopes: []string{"somescope1"}
}
}
类似于 jq
to_entries
这样的事情可能吗?甚至不知道从哪里开始。
谢谢!
如果没有自定义封送处理,您可以通过将动态键映射到映射键来实现。每个映射似乎都是一个范围数组,因此:
type Mappings struct {
Mappings map[string][]string `yaml:"mappings"`
}