首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Go中解析Firestore get()快照JSON内容?

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

Stack Overflow用户
提问于 2019-12-05 13:22:52
回答 2查看 548关注 0票数 0

Firestore在获取数据时返回map[string]interface{}。如何呈现"details“值?

代码语言:javascript
复制
user:{
      fname:"john",
      lname:"con",
      detail:{
             address:"Delhi, India",
             mob:"0000000009"
             }
}
代码语言:javascript
复制
sn := snap.Data()
    var bt []byte

    for _, val := range sn {
        for _, v := range val {
            log.Println("value ", v)
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-05 14:15:04

使用json.Unmarshal将您的JSON内容转换为地图。

代码语言:javascript
复制
    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

票数 1
EN

Stack Overflow用户

发布于 2019-12-05 14:33:32

首先要做的是。您的JSON似乎无效。看起来好像少了几个引号。

尝试验证您的示例数据here,您将看到它的问题所在。

或者,将JSON解码为映射,也可以将其解组为结构,只要事先知道其结构即可。

代码语言:javascript
复制
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)
}

Full working example

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59188728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档