【发布时间】:2021-07-06 20:57:16
【问题描述】:
我想从 PONS API 获取数据时遇到问题。
import 'package:eng_it_translator/model/model.dart';
import 'package:http/http.dart';
import 'dart:convert';
import 'package:http/http.dart' as http;
class Network {
Future<Vocabulary> fetchData({String keyword}) async {
var headers = {
'X-Secret':
'XXXXXXXXXXXXX',
};
var params = {
'q': 'house',
'l': 'deen',
};
var query = params.entries.map((p) => '${p.key}=${p.value}').join('&');
var url = Uri.parse("https://api.pons.com/v1/dictionary?$query");
var res = await http.get(url, headers: headers);
if (res.statusCode == 200) {
var data = json.decode(res.body);
var realdata =
List<Vocabulary>.from(data).map((x) => Vocabulary.fromJson(x));
print(realdata);
} else {
throw Exception('http.get error: statusCode= ${res.statusCode}');
}
}
}
参数类型“Vocabulary”不能分配给参数类型“Map
DATA 的主体在 Map 结构中,但我无法将其转换为 List。
class Vocabulary {
String lang;
List<Hits> hits;
Vocabulary({this.lang, this.hits});
Vocabulary.fromJson(Map<String, dynamic> json) {
lang = json['lang'];
if (json['hits'] != null) {
hits = new List<Hits>();
json['hits'].forEach((v) {
hits.add(new Hits.fromJson(v));
});
}
}
【问题讨论】: