如何插入多维数组

want to save the data of the following format

{"_ibj_id":"1","url_id":'1',"url":{"0":"http://0.com","1":"http:://1.com"}}

Look at my code,

type db_list struct {
    Url_id int
    Url    map[int]string
}
func list(table *mgo.Collection) {

    var doc *goquery.Document

    var e error

    for i := 1628644; i > 1628643; i-- {

        if doc, e = goquery.NewDocument("http://www.120ask.com/list/all/" + strconv.Itoa(i)); e != nil {

            panic(e.Error())

        }

        var save_list db_list

        save_list.Url_id = i

        save_list.Url = make(map[int]string)

        //fmt.Println("%s", doc.Text())

        doc.Find(".q-quename").Each(func(n int, s *goquery.Selection) {

            href, isTrue := s.Attr("href")

            if isTrue {

                save_list.Url[n] = href

                fmt.Println("%D : %s", n, save_list.Url[n])

            }

        })

        fmt.Println("%D", len(save_list.Url))

        //save database

        table.Insert(save_list)

    }

}

The database will eventually save Please view the picture in the annex, is to save the format of the data, save the URLvalue of the property 1enter image description here

You're probably after the JSON Unmarshal function in encoding/json

{"_ibj_id":"1","url_id":'1',"url":{"0":"http://0.com","1":"http:://1.com"}} is technically invalid JSON due to the single-quotes around the url_id value( '1' should be "1") but other than that, it should map nicely to the following struct:

{
id string
url_id string
urls []string
}

But you may need to experiment with the types. According to the docs for the Unmarshal function, it will use the following Go types for each JSON type:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

I'd highly recommend reading Andrew Gerrands Blog Post "JSON and Go".

It's unclear to me exactly what you are trying to do. One thing I notice though, is that in your desired format the keys for Url are string values where as in Go they are integers. You could try changing the type of Url to map[string]string and see if that solves your problem.