如何将货币列表从 openexchangerates.org 反序列化为 C# 自定义类或对象
本文关键字:自定义 对象 反序列化 org 货币 列表 openexchangerates | 更新日期: 2023-09-27 18:33:51
我需要从这里获取 C# 中的货币值列表:http://openexchangerates.org/currencies.json
产生这种输出:
{
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek",
"AMD": "Armenian Dram",
"ANG": "Netherlands Antillean Guilder",
"AOA": "Angolan Kwanza"
// and so on
}
我设法使用 C# 获取了一个包含上述值的字符串,但我找不到将该字符串反序列化为任何自定义类或匿名对象的方法,所以我想知道该怎么做?
另外,我正在尝试使用 Json.NET 来做到这一点,但到目前为止找不到解决方案......
使用 Json.Net
var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString);
--编辑--
你可以让它更短
WebClient w = new WebClient();
string url = "http://openexchangerates.org/currencies.json";
var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(w.DownloadString(url));
仅
使用 .Net 4.0 而不使用第三方库的解决方案:
string url = "http://openexchangerates.org/currencies.json";
var client = new System.Net.WebClient();
string curStr = client.DownloadString(url);
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
var res = (js.DeserializeObject(curStr) as Dictionary<string, object>)
.Select(x => new { CurKey = x.Key, Currency = x.Value.ToString() });
输出匿名对象列表,并将列表中的键和值作为属性。
享受:)