douju2053
douju2053
2019-03-20 03:07

嵌套地图返回json数组[]

已采纳

How can I create a nested JSON array? Is there any other easy way to do it?

I tried this:

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

but it shows this error:

cannot use append(tickets, ptotal) (type []interface {}) as type map[string]interface {} in assignment

I can do this, but it's not nested at all:

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

I want this JSON:

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

I want like Playground of mine

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dsjxgu4759 dsjxgu4759 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})
    
    点赞 评论 复制链接分享
  • doujing8435 doujing8435 2年前

    try this:

    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)
    
    点赞 评论 复制链接分享

为你推荐