我有一堆json格式的财务数据,需要从中提取两条信息:
ticker symbols
(例如AAPL,GOOG)industry
。这里是数据link以下,您可以看到json查看器中的数据:
这是我最近(非工作)尝试检索industry names
:
string url = "http://query.yahooapis.com/v1/public/yql?q=select%20%2A%20from%20yahoo.finance.industry%20where%20id%20in%20(select%20industry.id%20from%20yahoo.finance.sectors)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
string json = new WebClient().DownloadString(url);
JObject o = JObject.Parse(json);
IList<string> industries = o.SelectToken("query.results.industry").Select(s => (string)s).ToList();
如何检索ticker symbols
和industry names
并以方便的方式存储它们(例如字符串数组或字典中)?
答案 0 :(得分:2)
看起来Dictionary<string, IEnumerable<string>>
可能非常适合这种情况。如果没有,这至少应该让您了解如何选择所需的信息:
Dictionary<string, IEnumerable<string>> industryData =
o.SelectToken("query.results.industry")
.ToDictionary(
ind => ind["name"].ToString(),
ind => ind["company"] != null ?
ind["company"].Select(c => c["symbol"].ToString()) : null);
有条件是必要的,因为(至少)一个行业零公司(并且没有这个问题的名称)。这将为您提供一个字典,其中的关键字是行业名称,其值是IEnumerable<string>
股票行情。