dart Flutter:jsonDecode无法将key解码为整数值

bf1o4zei  于 2023-05-04  发布在  Flutter
关注(0)|答案(1)|浏览(241)

json字符串仅用于说明目的。实际的json字符串要大得多。我希望密钥可以直接解析成int而不是String

String json = "{ \"1\": \"test\", \"2\": \"test\" }";
Map<int, String> map = jsonDecode(json);

错误:
_TypeError(type '_Map〈String,dynamic〉'不是类型'Map〈int,String〉'的子类型)

zdwk9cvp

zdwk9cvp1#

我不知道一个解决方案,这样做,而不转换Map。在jsonDecode之后,您可以使用forEach遍历map元素并转换它们并存储在另一个map中:

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]);
}

相关问题