GoLang中的Marshall和UnMarshall JSON内容
我有一个示例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不打印任何内容。我不知道怎么了。
回答:
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"`
}
以上是 GoLang中的Marshall和UnMarshall JSON内容 的全部内容, 来源链接: utcz.com/qa/429925.html