我正在以这种格式下载股票定价数据:
{“Meta数据”:{“1.信息”:“日内(5分钟)开盘,高,低,收盘价格和成交量”,“2.符号”:“IBM”,“3.上次刷新”:“2023-08-01 19:55:00”,“4.间隔”:“5分钟”,“5。输出大小”:“紧凑”,“6.时区”:“美国/东部”},“时间序列(5分钟)”:2023-08-01 19:55:00 {“1. open”:“142.8100”,“2.高”:“143.1000”,“3.低”:“142.8100”,“4. close”:“142.8100”,“5.卷”:“230”},“2023-08-01 19:45:00”:{“1. open”:“143.0000”,“2.高”:“143.0000”,“3.低”:“143.0000”,“4. close”:“143.0000”,“5.卷”:“50”},.......}
我想用C#反序列化。
Meta数据的结构是可预测的,这一部分正在工作。
但日期是不可预测的,我不知道响应的确切日期,每个日期都有五个潜在的变量。
因此,我无法使用确切的日期来构造JsonProperty项,那么我如何才能像这样反序列化数据呢?
我的尝试:
public class json_price
{
[JsonProperty("Meta Data")]
public headers Headers { get; set; }
public class headers
{
[JsonProperty("1. Information")]
public string s1 { get; set; }
[JsonProperty("2. Symbol")]
public string s2 { get; set; }
[JsonProperty("3. Last Refreshed")]
public string s3 { get; set; }
[JsonProperty("4. Interval")]
public string s4 { get; set; }
[JsonProperty("5. Output Size")]
public string s5 { get; set; }
[JsonProperty("6. Time Zone")]
public string s6 { get; set; }
}
[JsonProperty("Time Series 5min")]
public priceheader ph { get; set; }
// [JsonProperty("??????")] unknown date so can't refer to JsonProperty??
public class priceheader
{
public datepricing[] dp { get; set; }
}
public class datepricing
{
[JsonProperty("1. open")]
public long O { get; set; }
[JsonProperty("2. high")]
public long H { get; set; }
[JsonProperty("3. low")]
public long L { get; set; }
[JsonProperty("4. close")]
public long C { get; set; }
[JsonProperty("5. volume")]
public long V { get; set; }
}
}
字符串
这会产生一个正确填充的Headers对象,但当我尝试反序列化时,会产生一个空的“ph”对象:
json_price results = JsonConvert.DeserializeObject<json_price>(output);
型
谢谢你,谢谢
1条答案
按热度按时间sg2wtvxw1#
如果您修复了datepringing属性的类型,则使用字典是有效的
字符串
但我不喜欢将DateTime属性作为Dictionary键,我更喜欢使用List
型