Используя Python, я могу сделать следующее:
r = requests.get(url_base + url)
jsonObj = json.loads(r.content.decode('raw_unicode_escape'))
print(jsonObj["PartDetails"]["ManufacturerPartNumber"]
Есть ли способ выполнить то же самое, используя Golang?В настоящее время мне нужно следующее:
json.Unmarshal(body, &part_number_json)
fmt.Println("\r\nPartDetails: ", part_number_json.(map[string]interface{})["PartDetails"].(map[string]interface{})["ManufacturerPartNumber"])
То есть мне нужно использовать приведение для каждого поля JSON, что утомляет и делает код нечитаемым.Я попробовал это, используя отражение , но это также не совместимо.
РЕДАКТИРОВАТЬ : в настоящее время использовать следующую функцию:
func jso(json interface{}, fields ...string) interface{} {
res := json
for _, v := range fields {
res = res.(map[string]interface{})[v]
}
return res
и вызывать ее какчто:
fmt.Println("PartDetails: ", jso( part_number_json, "PartDetails", "ManufacturerPartNumber") )