嵌套地图返回json数组[]

时间:2019-03-20 03:07:29

标签: json api go controller beego

如何创建嵌套的JSON数组?还有其他简单的方法吗?

我尝试过:

var m1 = make(map[string]interface{})
m1 = append(tickets, ptotal)                      //error is here
i.Data["json"] = m1
i.ServeJSON()

但显示此错误:

  

不能在分配中使用append(tickets,ptotal)(类型[] interface {})作为map [string] interface {}类型

我可以这样做,但是根本没有嵌套:

// some := append(tickets, map[string]int64{"totalpage": ptotal})

我想要这个JSON:

[
  {tickets
     name:value,
  },
],
[
  {
   totalpage: 10
  }
]

我想要像Playground of mine

2 个答案:

答案 0 :(得分:2)

var tickets []interface{}
var ptotal int64
tickets, ptotal, err := models.GetAllTicket(query, fields, sortby, order, offset, limit)
if err != nil {
    // bulabula
}
i.Data["json"] = append(tickets, map[string]int64{"totalpage": ptotal})

答案 1 :(得分:1)

尝试一下:

var data = map[string]map[string]string{
    "ticket": map[string]string{},
    "totalpage": map[string]string{},
    "c": map[string]string{},
}

data["ticket"]["w"] = "vrniairvnai"
data["totalpage"]["w"] = "ten"
fmt.Println(data)

var data2 = make(map[string]interface{})
data2["data"] = data
data2["int"] = 10
fmt.Println(data2)