c# - 从 Json 创建 C# 类
问题描述
{
"00AK": {
"icao": "00AK",
"iata": "",
"name": "Lowell Field",
"city": "Anchor Point",
"state": "Alaska",
"country": "US",
"elevation": 450,
"lat": 59.94919968,
"lon": -151.695999146,
"tz": "America\/Anchorage"
},
"00AL": {
"icao": "00AL",
"iata": "",
"name": "Epps Airpark",
"city": "Harvest",
"state": "Alabama",
"country": "US",
"elevation": 820,
"lat": 34.8647994995,
"lon": -86.7703018188,
"tz": "America\/Chicago"
}
}
希望使用包含世界各地可用机场列表的 json。当我们为上述 json 创建类时,它将为每个机场创建类。
因此,如果是 100k 个机场,则会生成 100k 个具有相似属性的类。有没有办法简化这个?我们可以使用任何泛型吗?
解决方案
我只是为机场开一个班然后反序列化到一个Dictionary<string,Airport>
这是一个更简单的例子:
var json = @"{ ""00AL"": {""elevation"":450}, ""00AK"":{""elevation"":820} }";
var obj = JsonConvert.DeserializeObject<Dictionary<string,Airport>>(json);
foreach(var item in obj) {
Console.WriteLine($"{item.Key}={item.Value.Elevation}");
}
public class Airport
{
[JsonProperty("elevation")]
public int Elevation { get; set; }
}
你有一个机场类,你可以枚举结果字典的值。如果 json 添加更多机场,您的字典会获得更多值,但您仍然只有一个机场类
推荐阅读
- html - 在表格中居中复选框
- ruby-on-rails - 带有 div 和 i 元素的 rspec have_selector 不起作用
- javascript - React Native Image 标签导致服务器响应失败
- json - 如何在春季启动中对对象列表应用服务器端验证?弹簧不验证列表存在于员工类中
- while-loop - JMeter:当控制器没有在零计数时终止
- c# - 无法访问托管在 Windows 服务中的 ASP.NET Core 应用程序
- php - Laravel 'Auth::user()' 在控制器的 '__construct' 中显示 false
- dialog - QGIS 3 - 如何更改属性窗口的大小?
- mongodb - 如何测量复制 mongo 数据库的时间?
- sql - 如何在不重复的情况下有效地计算 SQL 中列值的出现次数?