【发布时间】:2019-11-22 22:42:19
【问题描述】:
- 我正在与 geocoder library 合作。
- 当我收到 Address 时,我想将其作为用户(对象)属性保存在 firebase
firestore 中,但我需要这样做
序列化地址(将其转换为地图)。 - 目前,我使用json_serializable 解析/映射我的 用户类。
- 由于 Address 是地理编码器库中的一个类,因此我无法将其解析到地图或从地图解析,因为这是由 json_serializable 处理的。
这是我的用户类:
import 'package:geocoder/model.dart';
import 'package:json_annotation/json_annotation.dart';
import './resource.dart';
part 'user.g.dart';
@JsonSerializable()
class User extends Resource {
User(this.email, this.name);
String email;
String name;
List<Address> addresses;
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
- 我尝试创建一个名为 UserAddress 的新类,其父类将是 Address 如下所示,但出现错误
构造函数返回的“地址”类型不是预期的“用户地址”类型。dart(invalid_cast_new_expr)
在命名构造函数 UserAddress.fromJson:
import 'package:geocoder/geocoder.dart';
import 'package:json_annotation/json_annotation.dart';
part 'user-address.g.dart';
@JsonSerializable()
class UserAddress extends Address {
UserAddress();
factory UserAddress.fromJson(Map<String, dynamic> json) =>
Address.fromMap(json);
Map<String, dynamic> toJson() => this.toMap();
}
请给我一些选项来实现对地图的解析。
【问题讨论】: