我需要从谷歌股票馈送中提取并显示一些json数据:
https://finance.google.com/finance/info?client=ig&q=纽约证券交易所:BHP
唯一的问题是我不知道数据是什么。客户希望传入一个逗号分隔的值列表,告诉我的代码要提取哪些项。因此,我计划传入一个命名项数组,告诉提要我想要哪些项的值,因此理论上可以将传入的值与等效的json项名称相匹配。它不会总是相同的项目或项目数量。
我如何动态地做到这一点(我使用的是json.net)?
Json数据样本:
[{
"id": "4905",
"t": "BHP",
"e": "NYSE",
"l": "26.90",
"l_fix": "26.90",
"l_cur": "26.90",
"s": "0",
"ltt": "6:01PM EST",
"lt": "Dec 2, 6:01PM EST",
"lt_dts": "2015-12-02T18:01:42Z",
"c": "-0.41",
"c_fix": "-0.41",
"cp": "-1.50",
"cp_fix": "-1.50",
"ccol": "chr",
"pcls_fix": "27.31"
}]
用户可能传入的CSV值示例:
t、 e,l,cp_fix
您可以使用System.Web.Helpers
命名空间中的json类将json字符串反序列化为dynamic
对象。如下所示:
dynamic Data = Json.Decode(json);
它包含在MVC框架中,作为对.NET4框架的附加下载。然后您可以使用Data.PropertyName
访问您想要的属性