Golang - 你如何解码 json 数组并获取 root 属性

我不知道如何在 Go 中解码这个 JSON。地图返回零。Unmarshal 从内存中工作,但最终我可能需要一个流。另外,我需要获取 Foo、Bar 和 Baz 键名。不确定那个。


JSON:


{


  "Foo" : {"Message" : "Hello World 1", "Count" : 1}, 

  "Bar" : {"Message" : "Hello World 2", "Count" : 0}, 

  "Baz" : {"Message" : "Hello World 3", "Count" : 1} 


}

代码:


package main


import (

    "encoding/json"

    "fmt"

    "os"

)


type Collection struct {

    FooBar map[string]Data

}

type Data struct {

    Message string `json:"Message"`

    Count   int    `json:"Count"`

}


func main() {


    //will be http

    file, err := os.Open("stream.json")

    if err != nil {

        panic(err)

    }


    decoder := json.NewDecoder(file)


    var c Collection


    err = decoder.Decode(&c)

    if err != nil {

        panic(err)

    }


    for key, value := range c.FooBar {

        fmt.Println("Key:", key, "Value:", value)

    }

    //returns empty map

    fmt.Println(c.FooBar)


}


智慧大石
浏览 190回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go