我在下面有一个答复
[
{
"name": "Kamchatka",
"about": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime mollitia,molestiae quas vel sint commodi repudiandae consequuntur voluptatum laborumnumquam blanditiis harum quisquam eius sed odit fugiat iusto fuga praesentium optio, eaque rerum! Provident similique accusantium nemo autem.",
"email": "kamchatka@mail.com",
"index": 1,
"picture": "https://thispersondoesnotexist.com/"
},
{
"name": "Valjakutse",
"about": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime mollitia,molestiae quas vel sint commodi repudiandae consequuntur voluptatum laborumnumquam blanditiis harum quisquam eius sed odit fugiat iusto fuga praesentium optio, eaque rerum! Provident similique accusantium nemo autem.",
"email": "valjakutse@mail.com",
"index": 2,
"picture": "https://thispersondoesnotexist.com/"
},
{
"name": "Shipment",
"about": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime mollitia,molestiae quas vel sint commodi repudiandae consequuntur voluptatum laborumnumquam blanditiis harum quisquam eius sed odit fugiat iusto fuga praesentium optio, eaque rerum! Provident similique accusantium nemo autem.",
"email": "shipment@mail.com",
"index": 3,
"picture": "https://thispersondoesnotexist.com/"
}
]我有一个未来,它是异步的,应该获得响应并将其转换为如下所示的HashMap列表
Future<List<HashMap<String, dynamic>>> _fetchUsersListHashMap() async {
try {
final response = await http.get(Uri.parse("https://jsonkeeper.com/b/XBCA"));
late List<HashMap<String, dynamic>> responseList;
responseList = List<HashMap<String, dynamic>>.from(json.decode(response.body));
String stringList = jsonEncode(responseList);
log("FetchUsersListHashMap $stringList");
return responseList;
} catch (e) {
log("FetchUsersListHashMapException $e");
rethrow;
}
}当我调用_fetchUsersListHashMap时,我会出现以下错误
Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'HashMap<String, dynamic>'我甚至尝试改变我分配给responseList的方式
responseList = json.decode(response.body);但是它没有为HashMap列表分配来自url的响应。
下面是我是如何在java中实现的,只是我不能在颤振中复制相同的概念。
List<HashMap<String, Object>> responseList = new Gson().fromJson(response,
new TypeToken<List<HashMap<String, Object>>>() {
}.getType());发布于 2022-01-14 09:23:13
Future<List<HashMap<String, dynamic>>> _fetchUsersListHashMap() async {
try {
final response = await http.get(Uri.parse("https://jsonkeeper.com/b/XBCA"));
final decoded = json.decode(response.body);
final responseList = decoded
.map<HashMap<String, dynamic>>((e) => HashMap<String, dynamic>.from(e))
.toList();
String stringList = jsonEncode(responseList);
log("FetchUsersListHashMap $stringList");
return responseList;
} catch (e) {
log("FetchUsersListHashMapException $e");
rethrow;
}
}发布于 2022-01-14 09:18:05
试试这个:
List<HashMap<String, dynamic>> responseList = [];
List jsonList = List.from(jsonDecode(response.body));
jsonList.forEach((element) {
responseList.add(HashMap.from(Map.from(element)));
});https://stackoverflow.com/questions/70708164
复制相似问题