我正在尝试调用HTTP API来显示产品信息
Future<void> getProblem() async {
final responce = await dio.get('https://localhost:7050/api/Problem/1',
options: Options(
headers: {"content-type": "application/json"},
));
final problemsJsonList = responce.data as List<dynamic>;
final problem =
problemsJsonList.map((e) => ProblemWithCommentModel.fromJson(e)).toList();
print(problem);
}
其使用的模型
part 'ProblemWithCommentModel.g.dart';
@JsonSerializable()
class ProblemWithCommentModel
{
final String userName;
final int id;
final int userId;
final String name;
final String about;
final String date;
List<Comments> comments;
ProblemWithCommentModel({
required this.userName,
required this.id,
required this.userId,
required this.name,
required this.about,
required this.comments,
required this.date,
});
factory ProblemWithCommentModel.fromJson(Map<String, dynamic> json) => _$ProblemWithCommentModelFromJson(json);
Map<String, dynamic> toJson() => _$ProblemWithCommentModelToJson(this);
ProblemWithCommentModel _$ProblemWithCommentModelFromJson(
Map<String, dynamic> json) =>
ProblemWithCommentModel(
userName: json['userName'] as String,
id: json['id'] as int,
userId: json['userId'] as int,
name: json['name'] as String,
about: json['about'] as String,
comments: (json['comments'] as List<dynamic>)
.map((e) => Comments.fromJson(e as Map<String, dynamic>))
.toList(),
date: json['date'] as String,
);
Map<String, dynamic> _$ProblemWithCommentModelToJson(
ProblemWithCommentModel instance) =>
<String, dynamic>{
'userName': instance.userName,
'id': instance.id,
'userId': instance.userId,
'name': instance.name,
'about': instance.about,
'date': instance.date,
'comments': instance.comments,
};
}```
class Comments
{
final String userName;
final int id;
final int userId;
final int problemId;
final String about;
final String date;
Comments({
required this.userName,
required this.id,
required this.userId,
required this.problemId,
required this.about,
required this.date,
});
factory Comments.fromJson(Map<String, dynamic> json) => _$CommentsFromJson(json);
Map<String, dynamic> toJson() => _$CommentsToJson(this);
part of 'Comments.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Comments _$CommentsFromJson(Map<String, dynamic> json) => Comments(
userName: json['userName'] as String,
id: json['id'] as int,
userId: json['userId'] as int,
problemId: json['problemId'] as int,
about: json['about'] as String,
date: json['date'] as String,
);
Map<String, dynamic> _$CommentsToJson(Comments instance) => <String, dynamic>{
'userName': instance.userName,
'id': instance.id,
'userId': instance.userId,
'problemId': instance.problemId,
'about': instance.about,
'date': instance.date,
};
}```
`
Error: Expected a value of type 'List', but got one of type '_JsonMap'
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49 throw
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 99:3 castError
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 452:10 cast
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/classes.dart 635:14 as_C
packages/auth/page_of_problem.dart 25:44 getProblem
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1653:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 147:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 557:7 [_complete]
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 47:12 complete
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future.dart 613:44 onValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1653:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 147:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 566:5 [_completeWithValue]
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 639:7 callback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/schedule_microtask.dart 40:11 _microtaskLoop
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/schedule_microtask.dart 49:5 _startMicrotaskLoop
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15
I need list of PromlemWitchComments
1条答案
按热度按时间ruoxqz4g1#
responce.data 不是来自类型List,它是Map。请移除对List的强制转换。