json字符串仅用于说明目的。实际的json字符串要大得多。我希望密钥可以直接解析成int而不是String
int
String
String json = "{ \"1\": \"test\", \"2\": \"test\" }"; Map<int, String> map = jsonDecode(json);
错误:_TypeError(type '_Map〈String,dynamic〉'不是类型'Map〈int,String〉'的子类型)
zdwk9cvp1#
我不知道一个解决方案,这样做,而不转换Map。在jsonDecode之后,您可以使用forEach遍历map元素并转换它们并存储在另一个map中:
jsonDecode
forEach
import 'dart:convert'; void main() { String json = "{ \"1\": \"test1\", \"2\": \"test2\" }"; final rawMap = jsonDecode(json); final convertedMap = <int, String>{}; rawMap .forEach((key, value) => convertedMap[int.parse(key)] = value.toString()); print(convertedMap[2]); }
1条答案
按热度按时间zdwk9cvp1#
我不知道一个解决方案,这样做,而不转换Map。在
jsonDecode
之后,您可以使用forEach
遍历map元素并转换它们并存储在另一个map中: