如何处理Go中具有相同元素的嵌套结构体



我一直在为我的一个小项目编写这段代码,我想解析一些JSON数据,看起来像这样:

{
"payloads": [
{
"xss": [
{
"payload": "{{RANDSTR}}"><scRiPT>alert(1)</ScrIPT>{{RANDSTR}}",
"search": "{{RANDSTR}}"><scRi"
},
{
"payload": "{{RANDSTR}}"",
"search": "{{RANDSTR}}""
},
{
"payload": "{{RANDSTR}}'",
"search": "{{RANDSTR}}'"
}
],
"tpli": [
{
"payload": "{{RANDSTR}}${{ {{RANDINT}} * {{RANDINT}} }}",
"search": "{{RANDSTR}}{{RANDINT}}"
},
{
"payload": "{{RANDSTR}}{{ {{RANDINT}} * {{RANDINT}} }}",
"search": "{{RANDSTR}}{{RANDINT}}"
},
{
"payload": "{{RANDSTR}}{! {{RANDINT}} * {{RANDINT}} !}",
"search": "{{RANDSTR}}{{RANDINT}}"
},
{
"payload": "{{RANDSTR}}{% {{RANDINT}} * {{RANDINT}} %}",
"search": "{{RANDSTR}}{{RANDINT}}"
}
]
}
]
}

这是我的结构声明:


type Payload struct {
Payload []struct {
Payload string `json:"payload"`
Search  string `json:"search"`
}
}
type Payloads struct {
Payloads []Payload `json:"payloads"`
}

我知道这不是我应该怎么做,但我不确定最好的方法。我不想指定键(xss, tpli等等),我想轻松地扩展这个文件,而无需修改文件。谁能给我指出正确的方向,如何实现这一点?

提前感谢。

这样建模:

type Payloads struct {
Payloads []map[string][]Payload `json:"payloads"`
}
type Payload struct {
Payload string `json:"payload"`
Search  string `json:"search"`
}

游乐场:https://play.golang.org/p/S6nnOKkADUO

最新更新