猿问

如果嵌套内容使用动态键,如何在 GoLang 中解析 JSON?

如果您将符号(由用户提供)作为字符串数组参数(例如:“ symbols”,being string["\"AAPL\"", "\"FB\"", "\"GOOG\""]),则可以使用strings/#Join生成正确的字符串:


s := strings.Joins(symbols, ",")

然后(如“编码/解码 URL ”中所述),用于net/url/#QueryEscape获取符号的最终 url 字符串:


url := "http://query.yahooapis.com/v1/public/yql?q=select%20LastTradePriceOnly%20from%20yahoo.finance.quote%20where%20symbol%20in%20(" + 

url.QueryEscape(s) + 

")&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"


MM们
浏览 205回答 1
1回答

森林海

试试这个,看起来你的结构设置不正确:http://play.golang.org/p/VRKbv-GVQB您需要解析整个 json 字符串,它是一个包含名为 的单个元素的对象items。items然后包含string->Person对象的映射。如果您只想从每个人中提取name和age,您可以通过抓取data.Items["bvu62fu6dq"].Name.如果您想在 中使用动态键Person,则需要执行map[string]interface{}而不是Person再次捕获动态键。它看起来像:type Data struct {    Items map[string]map[string]interface{} `json:"items"`}...fmt.Printf("%v\n", data.Items["bvu62fu6dq"]["name"]fmt.Printf("%v\n", data.Items["bvu62fu6dq"]["age"]fmt.Printf("%v\n", data.Items["bvu62fu6dq"]["xyz"]
随时随地看视频慕课网APP

相关分类

Go
我要回答