我有一个示例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"` }