golang 处理json?

package main

import (
    "encoding/json"
    "fmt"
    "github.com/bitly/go-simplejson"
    "os"
)

type urlset struct {
    Urlset urlData `json:"urlset"`
}
type urlData struct {
    Urls []url
}
type url struct {
    Url urlType `json:"url"`
}
type urlType struct {
    Loc  string   `json:"loc"`
    Data dataType `json:"data"`
}
type dataType struct {
    Id   int64  `json:"id"`
    Name string `json:"name"`
}

func main() {
    // var urlsetdata urlset
    var urlDatas []urlData
    var detail url
    detail.Url = urlType{Loc: "1", Data: dataType{Id: 12, Name: "1"}}
    urlDatas = append(urlDatas, detail)//这里我想手动的往slice里面追加item数据,但是报错
    // urlsetdata.Urlset = urlDatas
    body, err := json.Marshal(urlDatas)
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
    js, err := simplejson.NewJson(body)
    fmt.Println(js)
}

json机构是这样的{"urlset":[{"url":{"loc":"1","data":{"id":1,"name":"1"}}}]}
上面代码我定义了结构,我想手动的往urlset里面写任意个的item,但是用append追加貌似不行。。求各位大拿指点一下?谢谢

阅读 3.1k
2 个回答

urlData和url不是同一个类型,必须改为同一个类型.

 var urlDatas []url
 var detail url

往urlData类型的数组里append url类型,当然报错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题