我如何让这个小程序工作?我正在尝试从json字符串中读取一堆cookie到地图中并打印地图。以下程序不打印任何内容。
type htmlDoc struct {
cookies map[string] string `json:"Cookies"`
}
func main() {
jsonString := `{ Cookies: {
["name1": "Value1"],
["name2": "Value2"],
["name3": "Value3"]
}}`
var doc htmlDoc
json.Unmarshal([]byte(jsonString), &doc)
for name, value := range doc.cookies {
fmt.Printf("%s\t%s\n", name, value)
}
}
答案 0 :(得分:1)
您的代码中存在一些错误,首先您的json无效,我相信预期的JSON是:
{"Cookies": [
{"name1": "Value1"},
{"name2": "Value2"},
{"name3": "Value3"}]
}
另外,正如md2perpe评论的那样,您必须从htmlDoc导出Cookie。另一个问题是,如果Cookies是一组地图,htmlDoc必须具有以下结构
type htmlDoc struct {
Cookies []map[string]string `json:"Cookies"`
}
主要功能
func main() {
jsonString := `{"Cookies": [
{"name1": "Value1"},
{"name2": "Value2"},
{"name3": "Value3"}]}`
var doc htmlDoc
json.Unmarshal([]byte(jsonString), &doc)
for _, value := range doc.Cookies {
for k, v := range value {
fmt.Printf("%s\t%s\n", k, v)
}
}
}
答案 1 :(得分:0)
需要导出字段cookies
,即大写:
type htmlDoc struct {
Cookies map[string] string `json:"Cookies"`
}