【发布时间】:2022-01-05 15:28:12
【问题描述】:
这是我从 API 调用中获得的字符串:
{"AAPL":{"price":180.38},"FB":{"price":349.37},"TSLA":{"price":1212.15}}
我想将此字符串反序列化为列表或字典或类似的东西。 这是我认为可行的方法:
public Dictionary<string, double> LoadMultiplePrice(string symbols)
{
using (var webClient = new WebClient())
{
var rawData = webClient.DownloadString($"https://sandbox.iexapis.com/stable/stock/market/batch?&types=price&symbols={symbols}&token={ApiKey}");
var selectiveList = JsonConvert.DeserializeObject<Dictionary<string, double>>(rawData);
return selectiveList;
}
}
或者这个:
public List<SinglePriceList> LoadMultiplePrice(string symbols)
{
using (var webClient = new WebClient())
{
var rawData = webClient.DownloadString($"https://sandbox.iexapis.com/stable/stock/market/batch?&types=price&symbols={symbols}&token={ApiKey}");
var selectiveList = JsonConvert.DeserializeObject<List<SinglePriceList>>(rawData);
return selectiveList;
}
}
public class SinglePriceList
{
private double price { get; set; }
}
我收到以下错误:
Newtonsoft.Json.JsonSerializationException:
...将 JSON 更改为 JSON 数组(例如 [1,2,3])...
Newtonsoft.Json.JsonReaderException:
...解析值时遇到意外字符:{。路径“AAPL”,第 1 行,位置 9...
【问题讨论】:
-
你确定
private double price ...应该是私人的吗? -
啊,没看到,但现在我尝试公开,但仍然:Newtonsoft.Json.JsonSerializationException: ...将 JSON 更改为 JSON 数组(例如 [1,2,3]) ...
-
JsonConvert.DeserializeObject<Dictionary<string, SinglePriceList>>(rawData) -
谢谢你的作品!你对如何使它更小有什么建议吗?对我来说,只用一个属性(“价格”)创建一个课程似乎有点过头了????我找不到任何东西????♂️。
-
@maccettura 好的,如果是这样的话,我可以忍受。也谢谢你。
标签: c# json serialization