CityModel.fromJson constructor
从JSON创建模型
Implementation
factory CityModel.fromJson(Map<String, dynamic> json) {
List<CityModel>? cityList;
List<String>? areaList;
// 解析城市列表
if (json['city'] != null) {
try {
cityList =
(json['city'] as List)
.map((child) => CityModel.fromJson(child))
.toList();
} catch (e) {
print('解析城市数据出错: $e');
cityList = [];
}
}
// 解析区县列表
if (json['area'] != null) {
try {
areaList =
(json['area'] as List).map((area) => area.toString()).toList();
} catch (e) {
print('解析区县数据出错: $e');
areaList = [];
}
}
String name = '';
double? longitude;
double? latitude;
try {
name = json['name'] as String;
} catch (e) {
print('解析名称出错: $e');
name = json['name']?.toString() ?? 'Unknown';
}
// 尝试解析经度,但现在可能不存在
try {
if (json['log'] != null) {
longitude = double.parse(json['log'].toString());
}
} catch (e) {
print('解析经度出错: $e');
}
// 尝试解析纬度,但现在可能不存在
try {
if (json['lat'] != null) {
latitude = double.parse(json['lat'].toString());
}
} catch (e) {
print('解析纬度出错: $e');
}
return CityModel(
name: name,
longitude: longitude,
latitude: latitude,
city: cityList,
area: areaList,
);
}