Beego:如何解析对象url参数?

时间:2016-07-14 09:34:09

标签: go datatables beego

我收到的网址如下:

/controller/action?columns[0][data]=foo&columns[1][data]=bar&columns[2][data]=bar&columns[3][data]=bar&columns[4][data]=bar

所以我有一个对象数组。我怎样才能将它解析成一个结构?

我在控制器操作中拥有的是:

func (this *MyController) Foo() {

  type column struct{
    Data string
  }

  columns := []column{}

  if err := this.Ctx.Input.Bind(&columns, "columns"); err != nil {
    log.Fatal(err)
  } else {
    log.Println("OK, got:", columns)
  }

}

这个的输出是:

OK, got: [{} {} {} {} {} {}]

绑定成功检测到有五列但无法映射data字段。我试验过这个并且相信有两个问题:

绑定似乎只支持documentation中显示的确切语法:

?id=123&isok=true&ft=1.2&ol[0]=1&ol[1]=2&ul[]=str&ul[]=array&user.Name=astaxie

user.Name=astaxie有效,user[Name]=astaxie没有。

第二个问题是data的小写。我的实验显示user.Name有效,user.name没有。

因此数据绑定方法希望我在columns[0].Data=foo

时以columns[0][data]=foo的形式获取参数

第一个确实有效。但是我无法控制URL,我必须接受它,方括号中的小写data。该请求由DataTables生成。

0 个答案:

没有答案