这是我的 JSON 帖子的示例:{ "jsonFilter" :[{ "column": "", "contains": "", "condition": "", "not": true }, { "column": "", "contains": "", "condition": "", "not": true }]}我的 Echo 框架处理程序:func GetFilteredFileData(c echo.Context) error { body := echo.Map{} if err := c.Bind(&body); err != nil { fmt.Println(err) } fmt.Println(body) for key, element := range body { fmt.Println(key, element) }}结果:jsonFilter [map[column:StartTimestamp condition:contains contains:<nil> not:false] map[column:SourceIP condition:startsWith contains:<nil> not:true]]这不是索引可访问的,也不是键可访问的。有人告诉我我需要制作一个或 2 个结构,但我在那里所做的所有努力都没有奏效(大猩猩模式、json.Marshal 等)获取此映射并使其在变量/结构引用中实际可用的正确方法是什么?
1 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
您可以将该 json 解组为以下结构:
type Body struct {
Filter []JSONFilter `json:"jsonFilter"`
}
type JSONFilter struct {
Column string `json:"column"`
Contains string `json:"contains"`
Condition string `json:"condition"`
Not bool `json:"not"`
}
我不知道这个回声框架,但看起来像这样的东西应该可以工作:
body := Body{}
if err := c.Bind(&body); err != nil {
fmt.Println(err)
}
或者,json.Unmarshal如果以上不做。
- 1 回答
- 0 关注
- 135 浏览
添加回答
举报
0/150
提交
取消