2016-11-21 70 views
-2

我該如何得到這個小程序的工作?我試圖從JSON字符串中讀取一堆cookie到地圖中並打印地圖。下面的程序什麼都不打印。前往JSON地圖新手

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) 
    } 
} 
+4

檢查從解組的錯誤,這不是有效的JSON。 – JimB

回答

0

領域cookies需要導出,即是大寫:

type htmlDoc struct { 
    Cookies map[string] string `json:"Cookies"` 
} 
1

有在你的代碼中的錯誤,首先您的JSON是無效的,我認爲預期的JSON是:

{"Cookies": [ 
    {"name1": "Value1"}, 
    {"name2": "Value2"}, 
    {"name3": "Value3"}] 
} 

此外,由於md2perpe評論,您必須從htmlDoc導出Cookies。另一個問題,如果Cookie是地圖的數組,該HTMLDOC必須具有以下結構

type htmlDoc struct { 
    Cookies []map[string]string `json:"Cookies"` 
} 

和主FUNC

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) 
     } 
    } 
} 
+0

正是我在找什麼。我對json和Go相當陌生。這真的有幫助!謝謝! – user2443447