CityModel.fromJson constructor

CityModel.fromJson(
  1. Map<String, dynamic> json
)

从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,
  );
}