我一直在为我的一个小项目编写这段代码,我想解析一些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