gpt4 book ai didi

json - 未处理的异常: 'String'类型不是 'int'类型的子类型,即使数据中没有整数

转载 作者:行者123 更新时间:2023-12-03 03:22:30 25 4
gpt4 key购买 nike

我正在使用POST请求从数据库获取数据,并且以JSON格式检索数据。这是数据示例:

[
{
"course_name": "Calculus & Analytical Geometry",
"batch_name": "FA16-BCS-B16-B"
},
{
"course_name": "COURSE 3",
"batch_name": "FA16-BCS-B16-B"
},
{
"course_name": "COURSE 4",
"batch_name": "FA16-BCS-B16-B"
},
{
"course_name": "COURSE 5",
"batch_name": "FA16-BCS-B16-B"
},
{
"course_name": "COURSE 6",
"batch_name": "FA16-BCS-B16-B"
},
{
"course_name": "Object Oriented Programming",
"batch_name": "FA16-BCS-B16-B"
}
]

我有以下解析类。
class TeacherHomeData {
final String course_name;
final int batch_name;

TeacherHomeData({this.course_name, this.batch_name});

factory TeacherHomeData.fromJson(Map<String, dynamic> json) {
return TeacherHomeData(
course_name: json['course_name'],
batch_name: json['batch_name'],
);
}

Map<String, dynamic> toMap() =>
{"course_name": course_name, "batch_name": batch_name};
}

我正在像这样获取和解析数据:
ppUtils.getStringFromPref("teacher_id").then((teacher_id) async {
final data = await http
.post(AppUtils.teacherHomeLink, body: {"teacher_id": teacher_id});
var responseBody = data.body;
print(responseBody);
final parsed = json.decode(data.body).cast<Map<String, dynamic>>();

List<TeacherHomeData> parentSigninList = parsed
.map<TeacherHomeData>((json) => TeacherHomeData.fromJson(json))
.toList();

它引发以下错误。
E/flutter (19272): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type 'String' is not a subtype of type 'int'
E/flutter (19272): #0 new TeacherHomeData.fromJson (package:attendance_system/JSONConverterClasses/TeacherHomeData.dart:11:23)
E/flutter (19272): #1 _Teacher_HomeState.jamoo.<anonymous closure>.<anonymous closure> (package:attendance_system/src/TeacherHome.dart:69:59)
E/flutter (19272): #2 MappedListIterable.elementAt (dart:_internal/iterable.dart:417:29)
E/flutter (19272): #3 ListIterable.toList (dart:_internal/iterable.dart:221:19)
E/flutter (19272): #4 _Teacher_HomeState.jamoo.<anonymous closure> (package:attendance_system/src/TeacherHome.dart:70:12)
E/flutter (19272): <asynchronous suspension>

我找不到异常背后的逻辑。我的数据中没有 int值,为什么它会引发此异常。

最佳答案

您在模型中将batch_name用作整数,而json文件中的字符串则是一个字符串,这就是它显示解析错误的原因。试试这个:

class TeacherHomeData {
final String course_name;
final String batch_name;

TeacherHomeData({this.course_name, this.batch_name});

factory TeacherHomeData.fromJson(Map<String, dynamic> json) {
return TeacherHomeData(
course_name: json['course_name'],
batch_name: json['batch_name'],
);
}

Map<String, dynamic> toMap() =>
{"course_name": course_name, "batch_name": batch_name};
}

关于json - 未处理的异常: 'String'类型不是 'int'类型的子类型,即使数据中没有整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61672873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com