2017-06-29 11 views
-3

我想獲得每個驅動程序的id值並打印出來。如何使用golang從此地圖獲取id值?

地圖[驅動程序:地圖[5fd2b473-a9f6-452b-8b17-0eafa6d777f2:日書86d8be92-30c2-4fbb-ad9a-46dec5ddd6cf:仙人87776c70-5087-4b8a-A915-bf3363576f6a:拉維]]

partnerDetailsJsonString := partnerPkg.GetPartner(partnerId,`["drivers"]`) 
fmt.println(partnerDetailsJsonString)//prints the above map 

b := []byte(partnerDetailsJsonString) 

var partnerDetails map[string]interface{} 
err := json.Unmarshal(b, &partnerDetails) 
if err != nil { 
    fmt.Println("Error in unmarshalling JSON:", err) 
    return auroraCommon.JSON_UNEXPECTED_ERROR 
} 

fmt.Println(partnerDetails) 

for key, v := range partnerDetails { 
    fmt.Println(key) //prints only "drivers" 
    fmt.Println(v) // prints "map[5fd2b473-a9f6-452b-8b17-0eafa6d777f2:Rishu 86d8be92-30c2-4fbb-ad9a-46dec5ddd6cf:rishi 87776c70-5087-4b8a-a915-bf3363576f6a:Ravi]" 
} 
+0

對於上述地圖,它是如何完成的? –

回答

0

如果該值爲interface{},則需要使用類型斷言,然後才能在range語句中使用該斷言。在這裏,您需要json包使用的默認對象類型,即map[string]interface{}

for _, m := range partnerDetails { 
    for k, v := range m.(map[string]interface{}) { 
     fmt.Println(k) 
     fmt.Println(v) 
    } 
} 
+0

它正在工作。謝謝! –