我有这个JSON:
{
"AAPL": { "price": "131.85000" },
"eur/usd": { "price": "1.06290" },
"msft": { "price": "238.76000" }
}
当我试图将其反序列化到字典中时,它返回为空。
我使用的是TwelveDataAPI。https://twelvedata.com/docs real-time-price
我已经尝试创建一个简单的类,它将允许我反序列化这个JSON,即使有不同的股票和不同的数量。
我的类:
public class CurrentPriceClass
{
public class Root
{
public Dictionary<string, Price> Prices { get; set; }
}
public class Price
{
public string price { get; set; }
}
}
但是当我试图反序列化它时,它返回为null
,并且我不能迭代它:
CurrentPriceClass.Root priceRoot = JsonConvert.DeserializeObject<CurrentPriceClass.Root>(
dataJson);
foreach (KeyValuePair<string, CurrentPriceClass.Price> price in priceRoot.Prices)
{
Console.WriteLine($"{price.Key}: {price.Value.price}");
}
迭代时得到的错误是:
对象引用未设置为对象的实例。
调试priceRoot
时为null
。我认为这是我们班的一个问题。
反序列化为Dictionary<string, CurrentPriceClass.Price>
而不需要根类(CurrentPriceClass
)。
Dictionary<string, CurrentPriceClass.Price> priceRoot = JsonConvert.DeserializeObject<Dictionary<string, CurrentPriceClass.Price>>(dataJson);
foreach (KeyValuePair<string, CurrentPriceClass.Price> price in priceRoot)
{
Console.WriteLine($"{price.Key}: {price.Value.price}");
}
Demo @ .NET Fiddle