首页 > 解决方案 > 飞镖 JSON 字符串转换为列表字符串

问题描述

我有一个调用 json String 数组的 API,如下所示:

[
  "006.01.01",
  "006.01.01 1090",
  "006.01.01 1090 1090.950",
  "006.01.01 1090 1090.950 052",
  "006.01.01 1090 1090.950 052 A",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 A 521219",
  "006.01.01 1090 1090.950 052 B",
  "006.01.01 1090 1090.950 052 B 521211",
  "006.01.01 1090 1090.950 052 B 521211",
  "006.01.01 1090 1090.994",
  "006.01.01 1090 1090.994 001",
  "006.01.01 1090 1090.994 001 A",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111",
  "006.01.01 1090 1090.994 001 A 511111"
]

我打算将 json 转换为 dart 中的 List。我尝试了下面的脚本:

json.decode(response.body).cast<List<String>();

但它不起作用,脚本应该如何正确?

标签: dartflutter

解决方案


解析 JSON 列表的结果是一个List<dynamic>. 的返回类型jsonDecode是 just dynamic

您可以将这样的列表转换List<String>

List<String> stringList = (jsonDecode(input) as List<dynamic>).cast<String>();

您也可以将其用作 aList<dynamic>然后将每个值分配给String

List<dynamic> rellyAStringList = jsonDecode(input);
for (String string in reallyAStringList) { ... }

效果大致相同 - 当每个元素从列表中取出时,都会检查它是否为字符串。


推荐阅读