flutter - 在flutterr中解析复杂的json
问题描述
在我的代码中,我必须解析 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(),
);
}
}
解决方案
最好为要解析的对象创建一个模型,并编写fromJson()
和toJson()
函数来控制解析过程。
有一种简单的方法可以通过它,只需在此处Json object
传递您要解析的示例,它就会为您生成所需的类。
推荐阅读
- linux - 如何使用 for 循环为 git clone 制作 shell
- python - 使用 pd.readcsv() 读取字符串并转换总是创建对象,而不是字符串
- django - pip install 无法为 scrypt 和 pyethash 构建轮子
- c++ - FFmpeg Opus 断断续续的声音 更新说明
- django - 重置密码不相等时 Django 2.0.8 崩溃
- mongodb - 从在 AWS 上运行的 Mongo 实例中删除订单
- javascript - 为什么我的 RXJS 史诗在挂载时无限循环,但在按钮单击时只调用一次?
- javascript - 如何使用 fabric.js 将 URL 中的图像添加到 HTML 画布中并调整其大小?
- jenkins - Jenkins HTTP ERROR 403 No valid crumb is included in the request
- python - MongoDB使用python迭代游标