【发布时间】:2017-06-02 11:06:50
【问题描述】:
我从外部 API 获得 JSON 响应,但在尝试反序列化时遇到了一点问题。这是 JSON:
{
"Time Series (Daily)": {
"2017-06-01": {
"1. open": "70.2400",
"2. high": "70.6100",
"3. low": "69.4510",
"4. close": "70.1000",
"5. volume": "21066468"
},
"2017-05-31": {
"1. open": "70.5300",
"2. high": "70.7400",
"3. low": "69.8100",
"4. close": "69.8400",
"5. volume": "30436364"
}
}
}
以下是我尝试反序列化的类:
public class StockQuote
{
[JsonProperty("Time Series (Daily)")]
public TimeSeriesDaily Daily { get; set; }
}
public class TimeSeriesDaily
{
public string Date { get; set; }
public TimeSeries[] Daily { get; set; }
}
public class TimeSeries
{
[JsonProperty("1. open")]
public string Open { get; set; }
[JsonProperty("2. high")]
public string High { get; set; }
[JsonProperty("3. low")]
public string Low { get; set; }
[JsonProperty("4. close")]
public string Close { get; set; }
[JsonProperty("5. volume")]
public string Volume { get; set; }
}
这将反序列化为 null。我认为 TimeSeries 类是正确的,但我不确定如何处理更改日期。使用 json2csharp 不会为我创建有效的类,它告诉我 JSON 无效。
感谢您的帮助。
【问题讨论】:
-
这不是一个有效的 JSON 结构,而且 TimeSeriesDaily 类的结构也不正确。这里没有数组。 JSON 中的数组类似于 [ ]
-
我知道这不是一个数组,但我不确定如何构造我的类来反序列化。
-
我认为这将非常困难。也许使用 Json.NET 进行动态解析是可行的方法。weblog.west-wind.com/posts/2012/aug/30/…
标签: c# json json-deserialization