Open yangchong211 opened 5 years ago
我也碰到这个问题了,有解决方法么?
这个不适用于嵌套的,只能把data里面的类单独拆出来,搞个item.json文件,然后data那里写"data": "$[]item"
这个不适用于嵌套的,只能把data里面的类单独拆出来,搞个item.json文件,然后data那里写
"data": "$[]item"
但是生成的代码不会自动解析 JSON 好像,还得手动修改 *.g.dart 文件才行。比如:
// AuthorModel.dart
@JsonSerializable()
class AuthorModel {
AuthorModel();
String id;
String username;
Url avatarUri;
List<LabelModel> labelStructs;
factory AuthorModel.fromJson(Map<String,dynamic> json) => _$AuthorModelFromJson(json);
Map<String, dynamic> toJson() => _$AuthorModelToJson(this);
}
生成的 AuthorModel.g.dart
AuthorModel _$AuthorModelFromJson(Map<String, dynamic> json) {
return AuthorModel()
..id = json['id'] as String
..username = json['username'] as String
..avatarUri = json['avatarUri']
..labelStructs = json['labelStructs'] as List;
}
Map<String, dynamic> _$AuthorModelToJson(AuthorModel instance) =>
<String, dynamic>{
'id': instance.id,
'username': instance.username,
'avatarUri': instance.avatarUri,
'labelStructs': instance.labelStructs
};
labelStructs 属性不会调用 LabelModel.fromJson 进行解析,而是直接把 JSON 放进来了,这样好像有问题 :(
json代码示例
运行flutter packages pub run json_model生成model示例