[英]JSON.NET Deserializing a JSON into a dictionary comes back as null
我有这个 JSON:
{
"AAPL": { "price": "131.85000" },
"eur/usd": { "price": "1.06290" },
"msft": { "price": "238.76000" }
}
当我尝试将其反序列化为字典时,它返回为 null。
我正在使用 TwelveDataAPI。 https://twelvedata.com/docs#real-time-price
我已经尝试创建一个简单的 class,它允许我反序列化这个 JSON,即使有不同的代码和不同数量的代码。
我的class:
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}");
}
迭代时我得到的错误是:
Object 引用未设置为 object 的实例。
调试时priceRoot
为null
。 我假设这是我的 class 的问题。
反序列化为Dictionary<string, CurrentPriceClass.Price>
而无需根 class ( 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}");
}
你应该这样做。
public class CurrentPriceClass
{
public Dictionary<string, Price> Prices { get; set; }
public class Price
{
public string price { get; set; }
}
}
var obj = JsonConvert.DeserializeObject<Dictionary<string, Price>>(json);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.