异常:类型“String”不是类型“Map<String,dynamic>”的子类型
{"collection":{"data":"{\"id\": 1, \"name\": \"Marko\", \"picture\":
\"https://lh3.googleusercontent.com/a-/AAuE7mC1vqaKk_Eylt-fcKgJxuN96yQ7dsd2dBdsdsViK959TKsHQ=s96-
c\"}","statusCode":202,"version":"1.0"}}
Run Code Online (Sandbox Code Playgroud)
这是上面的 json,我想将它仅放在 User pojo 类中 [data]。
但它抛出了上面的异常类型。
class UserCollection {
final User data;
final int statusCode;
final String version;
UserCollection({this.data, this.statusCode, this.version});
factory UserCollection.fromJson(Map<String, dynamic> json) {
return UserCollection(
statusCode: json['statusCode'] as int,
data: User.fromJson(json['data']) ,
version: json['version'] as String );
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['data'] = this.data;
data['statusCode'] = this.statusCode;
data['version'] = this.version;
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
用户Pojo类
@JsonSerializable()
class User {
final int id;
final String sub;
final String home;
final String work;
final String name;
final String mobileNo;
final String email;
final String favMechId;
final String appVersionCode;
final String picture;
final String serverTime;
final String dateCreated;
final String dateModified;
final String fcmTokenId;
User(
{this.id,
this.sub,
this.home,
this.work,
this.name,
this.mobileNo,
this.email,
this.favMechId,
this.appVersionCode,
this.picture,
this.serverTime,
this.dateCreated,
this.dateModified,
this.fcmTokenId});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String,dynamic> toJson() => _$UserToJson(this);
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我引用了这个中等网站,中等颤振 json
但在 4 个多小时的时间里我不知道出了什么问题。如果将 User.from() 更改为 String 就可以了。但我需要将 [data] 从 json 解析为 User pojo 类。
Sag*_*ala 18
尝试下面,
factory UserCollection.fromJson(Map<String, dynamic> json) {
return UserCollection(
statusCode: json['statusCode'] as int,
data: User.fromJson(json.decode(json['data'])),
version: json['version'] as String );
}
Run Code Online (Sandbox Code Playgroud)
在某一方面的变化data: User.fromJson(json.decode(json['data'])),
| 归档时间: |
|
| 查看次数: |
62901 次 |
| 最近记录: |