当我尝试 json 解码时,出现错误 Expected a value of type 'List', but getting one of type '_JsonMap'
My code:
static Future<Response<Localizacao>> getLocalizacao(String cep) async {
await Future.delayed(Duration(milliseconds: 200));
try {
Map<String, String> headers = {
'Authorization': 'Token token=9e034db1f315356f30'};
String protocol = 'https://cors-anywhere.herokuapp.com/';
String uri =
'https://www.cepaberto.com/api/v3/cep?cep=' + cep;
final endpoint = "&format=json";
String url = protocol + uri + endpoint;
final response = await http.get(url, headers: headers);
if (response.statusCode == 200) {
final json = response.body;
List list = (jsonDecode(json) as List<dynamic>) ;
final local = list.map<Localizacao>((map) => Localizacao.fromJson(map)).toList();
return Response(true, msg: "OK", result: local[0]);
} else {
return Response(false, msg: "Erro ao conectar no web service");
}
} catch (e) {
return Response(false, msg: "Erro ao conectar no web service");
}
}
我尝试了其他方法,例如:
List list = convert.json.decode(response.body);
List list = convert.json.decode(json);
发现问题所在了。
我只需要添加:
final json = "[" + response.body + "]";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)