class Geocode { List? addressComponents; String? formattedAddress; Geocode({ this.addressComponents, this.formattedAddress, }); Geocode.fromJson(Map json) { formattedAddress = json['formatted_address']; if (json['address_components'] != null) { addressComponents = []; json['address_components'].forEach((v) { addressComponents!.add(AddressComponent.fromJson(v)); }); } } Map toJson() { final Map data = {}; data['formatted_address'] = formattedAddress; if (addressComponents != null) { data['address_components'] = addressComponents!.map((e) => e.toJson()).toList(); } return data; } } class AddressComponent { String? longName; String? shortName; List? types; AddressComponent({this.longName, this.shortName, this.types}); AddressComponent.fromJson(Map json) { longName = json['long_name']; shortName = json['short_name']; types = json['types'].cast(); } Map toJson() { final Map data = {}; data['long_name'] = longName; data['short_name'] = shortName; data['type'] = types; return data; } }