一尘不染

GoLang中的Marshall和UnMarshall JSON内容

go

我有一个示例json文件,其结构如下

{
  "method":"brute_force",
  "bc":"select * from blah;",
  "gc":[
    "select sum(year) from blah;",
    "select count(*) from table;"
      ]
}

我正在尝试编写一个go程序,该程序可以读取此文件并操作json内容。

package main 
import (
    "fmt"
    "encoding/json"
    "io/ioutil"
    )


type Response2 struct {
    method string
    bc string
    gc []string
}

func main() {
    file,_ := ioutil.ReadFile("config.json")
    fmt.Printf("%s",string(file))

        res := &Response2{}


        json.Unmarshal([]byte(string(file)), &res)
        fmt.Println(res)

        fmt.Println(res.method)
        fmt.Println(res.gc)

}

res.method和res.gc不打印任何内容。我不知道怎么了。


阅读 883

收藏
2020-07-02

共1个答案

一尘不染

type Response2 struct {
    method string
    bc string
    gc []string
}

字段的名称必须为大写,否则Json模块将无法访问它们(它们是模块专有的)。您可以使用json标签指定字段和名称之间的匹配项

type Response2 struct {
    Method string `json:"method"`
    Bc string `json:"bc"`
    Gc []string `json:"gc"`
}
2020-07-02