【发布时间】:2017-12-05 10:00:54
【问题描述】:
我是 JSON 的新手,我有一些 JSON 试图用 C# 解析。
我尝试过创建一个由数据表示的类,但我的属性名称是基于时间的,因此我必须对我的数据合约进行硬编码。我尝试过 JSON.NET 和 LINQ 对数据进行排序,但由于奇怪的对象/属性而不断得到空值。
我对 JSON 还是很陌生,所以我确信有一个简单的解决方法,我只是不知道如何正确地问这个问题。谢谢您的帮助。
下面是我正在努力解析的一小部分 JSON。再次感谢。
{
"Meta Data": {
"1. Information": "Intraday (1min) prices and volumes",
"2. Symbol": "MU",
"3. Last Refreshed": "2017-05-30 16:00:00",
"4. Interval": "1min",
"5. Output Size": "Full size",
"6. Time Zone": "US/Eastern"
},
"Time Series (1min)": {
"2017-05-30 16:00:00": {
"1. open": "30.7200",
"2. high": "30.7300",
"3. low": "30.7000",
"4. close": "30.7000",
"5. volume": "1390302"
},
"2017-05-30 15:59:00": {
"1. open": "30.7750",
"2. high": "30.7800",
"3. low": "30.7200",
"4. close": "30.7250",
"5. volume": "380134"
}
}
}
请注意,"Time Series" 属性以 1 分钟、5 分钟、15 分钟、30 分钟、60 分钟为间隔,即"Time Series (##min)" 用于各种##min。
【问题讨论】:
-
我能想到的第一件事是使用日期范围作为索引。例如,代替 "Time Series (1min)","Time Series": { "1min" { } } 然后取消对日期时间键的连字符,使其看起来像这样:20170530160000
-
感谢您的评论。问题是这是我从网站获取的 JSON,而不是创建的。就这样我理解你,你的说法是清理属性而不是解析。是否有一个库可以更改 JSON 格式本身?谢谢
-
1) 是否还有其他可能的
"Time Series"属性,例如""Time Series (10min)"?还是一组可能的时间序列是固定的? 2) 我尝试过 JSON.NET 和 LINQ 对数据进行排序,但由于奇怪的对象/属性而不断得到空值。你能分享你的尝试吗? -
@dbc 是的,“时间序列”以 1 分钟、5 分钟、15 分钟、30 分钟、60 分钟为间隔,就像你说的“时间序列(##min)”。我也尝试过 JSON.NET to LINQ 并得到一个 NULLException 错误。我可以通过硬编码其中的值来获得它,例如dynamic converted = JsonConvert.DeserializeObject
(JSON2);