【发布时间】:2021-11-27 23:04:39
【问题描述】:
我一直在为我的一个小项目编写这段代码,我想解析一些如下所示的 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 等),因为我想轻松扩展此文件而无需修改 Go 文件。
有人可以为我指出如何实现这一目标的正确方向吗?
提前致谢。
【问题讨论】:
-
如果你不知道你的 JSON 文档的结构,或者如果它可以改变,那么你就不能真正使用结构来定义它。相反,您可以使用 地图。见sohamkamani.com/golang/json/…