dart - 参数类型“字符串”不能分配给参数类型“对象?函数(对象?,对象?)?
问题描述
我正在使用飞镖并且有这两个错误(参数类型'String'不能分配给参数类型'Object?Function(Object?,Object?)?'。,参数类型'JsonDecoder'不能是在 response.body 和 data 中分配给参数类型 'Map<dynamic, dynamic>'.)
主要.dart
import 'dart:async';
import 'dart:convert' as convert;
import 'package:http/http.dart' as http;
void main() {
Map post = new Map();
Future<dynamic> getdata() async {
var url = Uri.parse('https://jsonplaceholder.typicode.com/posts/1');
var response = await http.get(url);
if (response.statusCode == 200) {
var data = convert.JsonDecoder(response.body);
post.addAll(data);
}
}
print('please wait..');
getdata();
print('Your data is $post');
}
解决方案
使用jsonDecode
而不是 convert.JsonDecoder。因为 JsonDecoder 返回一个自身的实例。由于您的变量post
是 Map 类型,因此无法将其添加到其中。如果您使用jsonDecode
,它将返回给您一个地图。这也是第一个错误的原因。
您正在尝试将 JsonDecoder 的实例打印为字符串。
检查以下内容,
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() {
Map<String, dynamic> post = new Map();
Future<dynamic> getdata() async {
var url = Uri.parse('https://jsonplaceholder.typicode.com/posts/1');
var response = await http.get(url);
if (response.statusCode == 200) {
var data = jsonDecode(response.body);
post.addAll(data);
}
}
print('please wait..');
getdata();
print($post);
}
推荐阅读
- python - 如何将拉普拉斯算子应用于文件夹中的每个图像
- excel - Excel:如何找到某一行并将该行中的值乘以某个数字?
- python - TemplateSyntaxError: 意外的 '%'
- react-native - React Native Button onPressIn 动画请求
- r - 部分包加载失败
- c++ - 如何监控 TLB 未命中(windows)?
- java - Hibernate 和 EJB:如何正确使用 @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)?
- python - 如何将文本文件中的多值字典作为字典导入 python 以及可能出现的问题。需要回答
- reactjs - 使用 React State Hook,设置多个状态后调用函数
- google-sheets - 尽管“不为空”,查询仍继续选择行