为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
婷婷同学_ 2022-04-20 20:48:49
Firestoremap[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)        }    }
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

使用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


查看完整回答
反对 回复 2022-04-20
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

第一件事。您的 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)

}


查看完整回答
反对 回复 2022-04-20
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信