在Flutter应用程序中尝试jsonDecode字符串时出错



当我尝试解码json字符串:[{"device-mac":"C9BF2EB47C17","on":true}]与以下函数错误:

I/flutter(8954):类型" List "不是类型" String "的子类型

得到的。

我的函数是这个,json字符串是从一个Rest API端点加载的:

Future<void> _getDevices() async {
var parsedList;
try {
final response = await restApiClient.get(
'/getDevices',
);
List<dynamic> parsedListJson = jsonDecode(response.data);
List<Device> itemsList =
List<Device>.from(parsedListJson.map((i) => Device.fromJson(i))); 

}
}

我认为它只能解析Sting,你传递了一个映射列表,你应该做一个循环,然后使用'response.data '将映射转换为字符串。toString',然后将值添加到列表中,或者如果它总是一个值,尝试使用'response.data.first.toString()

最后,它不起作用的原因是我的REST端点已经返回了一个列表JSON类型,这使得函数"jsonDecode"多余的。

我认为它只能解析Sting,如果你传递了一个映射列表,你应该做一个循环,然后使用'response.data.torturing '将映射转换为字符串,然后将值添加到列表中,或者如果它总是一个值尝试使用'response.data.first.toString()

最新更新