在我的代码中,我必须解析json。第一个链接工作正确,但是第二个调用错误 未处理的异常:类型“列表”不是类型“地图”的子类型。 我如何解决它并潜入这个主题?我从中学到了什么?
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:async';
import 'dart:convert';
void main() {
runApp(MaterialApp(
home: HomePage(),
));
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
Map data;
List userData;
Future getData() async {
http.Response response = await http.get("https://reqres.in/api/users?page=2"
// "https://api.unsplash.com/photos/?client_id=cf49c08b444ff4cb9e4d126b7e9f7513ba1ee58de7906e4360afc1a33d1bf4c0"
);
data = json.decode(response.body);
setState(() {
userData = data["data"];
});
debugPrint(data.toString());
}
@override
void initState() {
super.initState();
getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Fake Friends"),
backgroundColor: Colors.green,
),
body: Container(),
);
}
}
答案 0 :(得分:0)
最好为要解析的对象创建一个模型,并编写fromJson()
和toJson()
函数来控制解析过程。
有一个简单的方法可以解决这个问题,只需传递一个您要解析here的Json object
的示例,它将为您生成所需的类。