我不能从json获取数据使用flutter超文本传输协议请求,因为它得到了这个未处理的异常:类型列表不是类型字符串的子类型,并希望加载更多的数据时滚动到屏幕底部。有人能帮帮我吗...
postData。省道锉
class PostData extends StatefulWidget {
const PostData({Key key}) : super(key: key);
@override
_PostDataState createState() => _PostDataState();
}
class _PostDataState extends State<PostData> {
List<String> getData = List();
ScrollController _scrollController = ScrollController();
@override
void initState() {
super.initState();
fetchFive();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
fetchFive();
}
});
}
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Load Page"),
toolbarHeight: 65,
backgroundColor: Colors.blueAccent[700],
),
body: ListView.builder(
controller: _scrollController,
itemCount: getData.length,
itemBuilder: (context, index) {
return Card(
child: GestureDetector(
child: ListTile(
title: Text(getData[index]),
),
),
);
}));
}
fetch() async {
final response =
await http.get('https://my-json-server.typicode.com/typicode/demo/posts');
if (response.statusCode == 200) {
setState(() {
getData.add(json.decode(response.body));
});
} else {
throw Exception('Failed to load data');
}
}
fetchFive() {
for (int i = 0; i < 5; i++) {
fetch();
}
}
}
获取数据。dart文件模型json
class Users {
final int no;
final String nosiri;
final String lokasi;
final String status;
final String pemilik;
final String thumbnailurl;
Users(
{this.no,
this.nosiri,
this.lokasi,
this.status,
this.pemilik,
this.thumbnailurl});
factory Users.fromJson(Map<String, dynamic> json) {
return Users(
no: json['no'],
nosiri: json['no_siri'],
lokasi: json['lokasi'],
status: json['status'],
pemilik: json['pemilik'],
thumbnailurl: json['thumbnailurl'],
);
}
}
通过检查代码,您的响应是列表
List getData = List();
然后您需要将数据转换为如下所示的
列表
,然后在getData
中逐个添加数据。然后您可以将数据添加到文本中。
ListTile(
title: Text(getData[index]['title'].toString()),
),
您的
fetch()
方法如下
fetch() async {
final response = await http
.get('https://my-json-server.typicode.com/typicode/demo/posts');
if (response.statusCode == 200) {
setState(() {
final data = json.decode(response.body);
for (var i in data) {
getData.add(i);
}
});
} else {
throw Exception('Failed to load data');
}
}
作为响应,您将获得List
[
{
"id": 1,
"title": "Post 1"
},
{
"id": 2,
"title": "Post 2"
},
{
"id": 3,
"title": "Post 3"
}
]
尝试
List<Users> getData = [];
改变
getData.add(json.decode(response.body));
到
getData.addAll(List<Users>.from(json.decode(response.body).map((x) => Users.fromJson(x))));
我有来自API的响应文本。当我试图创建一个新的游戏从这个响应我得到一个错误: 错误:未处理的异常:“列表”类型不是“列表”类型的子类型 我在尝试使用JSON文本时遇到如下错误: 错误: 未处理的异常:“列表”类型不是“列表”类型的子类型 它指向游戏类中的这一行: 有什么建议吗?
我试图从服务器获取JSON响应并将其输出到控制台。 未处理的异常:类型“\u InternalLinkedHashMap” 原因可能是什么?
我正在尝试从中获取JSONhttps://jsonplaceholder.typicode.com/photos/但获取类似未处理异常的错误:类型“List”不是类型“Map”的子类型 有办法吗? 这是我的代码。 主要的飞奔 影印机。飞奔 image_list.dart 调试控制台: 未处理的异常:类型列表不是类型映射的子类型
我收到了错误消息: 被精确定位的线在这里: 返回类型为
我正在尝试从服务器获取json数据
我正在开发我的flutter应用程序的身份验证。请帮我解决这个问题。我无法识别返回这样一个错误的问题,声明未处理异常:类型列表不是类型字符串的子类型。 以下是登录屏幕的代码: 执行登录的上述代码部分: 错误