我正在使用 dart 并且有这两个错误(无法将参数类型 'String' 分配给参数类型 'Object? Function(Object?, Object?)?'。,参数类型 'JsonDecoder' 可以'不要分配给参数类型'Map
Main.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');
}
答案 0 :(得分:1)
使用 jsonDecode
代替 convert.JsonDecoder。因为 JsonDecoder 返回一个自身的实例。由于您的变量 post
是 Map 类型,因此无法将其添加到其中。如果您使用 jsonDecode
,它将返回一个 Map。这也是第一个错误的原因。
您正在尝试将 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);
}