dart - 飞镖 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>();
但它不起作用,脚本应该如何正确?
解决方案
解析 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) { ... }
效果大致相同 - 当每个元素从列表中取出时,都会检查它是否为字符串。
推荐阅读
- java - 使用 HttpServletRequestWrapper 后,我收到 HttpMessageNotReadableException 缺少所需的请求正文
- javascript - 当用户尝试拖放到单元格边框时是否可以触发功能?
- python - python pandas数据框联合合并列表到索引
- python - 从短语中打印单词
- java - 如何使用 ORMLite 同时在表中写入多个项目
- amazon-quicksight - AWS Quick Sight - 查询和数据检索机制
- javascript - Discord.js :部分代码不起作用,但没有错误
- javascript - 我可以压缩由 40 个不同字符组成的 400 个字符多少?
- html - 在django模板中如何在提交后保留下拉选择的选项?
- qt - QGraphicsView additem() 越来越大