如何在 Go 中解析 Firestore get() 快照 JSON 内容?

Firestore 在获取数据时返回map[string]interface{}。如何呈现“详细信息”值?


user:{

      fname:"john",

      lname:"con",

      detail:{

             address:"Delhi, India",

             mob:"0000000009"

             }

}

sn := snap.Data()

    var bt []byte


    for _, val := range sn {

        for _, v := range val {

            log.Println("value ", v)

        }

    }


繁花不似锦
浏览 138回答 2
2回答

喵喔喔

使用json.Unmarshal将 JSON 内容转换为地图。  jsonString := `{"user":true,"lname":"con","detail":{"address":"Delhi, India","mob":"0000000009"}}`    aMap := make(map[string]interface{})    err := json.Unmarshal([]byte(jsonString), &aMap)    if err != nil {        fmt.Println("error:", err)    }    fmt.Printf("%+v\n", aMap)    fmt.Printf("Address := %s\n",aMap["detail"].(map[string]interface{})["address"])https://play.golang.org/p/3133C_sKDf4

冉冉说

首先要事。您的 JSON 似乎无效。看起来缺少一些引用。尝试在此处验证您的示例数据,您会发现它有什么问题。或者,要将 JSON 解码为映射,您也可以将其解组为结构,只要您提前知道其结构即可。type User struct {    FirstName string `json:"fname"`    LastName  string `json:"lname"`    Detail    Detail `json:"detail"`}type Detail struct {    Address string `json:"address"`    Mobile  string `json:"mob"`}if err := json.NewDecoder(strings.NewReader(out)).Decode(&u); err != nil {    log.Fatal(err)}完整的工作示例
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go