【问题标题】:Parse List<List<String>> to List<DateTime> in dart/flutter在 dart/flutter 中将 List<List<String>> 解析为 List<DateTime>
【发布时间】:2023-03-09 01:43:01
【问题描述】:

我有来自服务器的响应:

[
    [
        "2014",
        "01",
        "01"
    ],
    [
        "2015",
        "01",
        "01"
    ],
    [
        "2016",
        "01",
        "01"
    ]
]

我想将它们转换为列表。 这是我创建的:

final response = await _dio.get(
    "api/v1/calendar/holidays");
List<dynamic> list = response.data;
List<String> calendarList = List();
var dateList =
list.map((i) => ((a) => calendarList.add(a.toString()))).toList();

return calendarList;

但这会返回字符串列表。有什么想法吗?

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    如果response.data 是您在问题中发布的列表,则应该可以。

    var dateList = response.data[0].map((l) => DateTime(l[0], l[1], l]2])).toList()
    

    你可能需要

    var dateList = jsonDecode(response.data)[0].map((l) => DateTime(l[0], l[1], l]2])).toList()
    

    取决于response.data 的实际格式。

    【讨论】:

    • 我得到错误:类型'List'不是类型'String'的子类型
    【解决方案2】:
    var result = response.data
      .map((e) => DateTime.parse('${e[0]}-${e[1]}-${e[2]}'))
      .toList();
    

    【讨论】:

    • 我收到错误:类型 'List' 不是类型 'List' 的子类型
    • 我真的不明白你为什么会收到这个错误。只需将List&lt;DateTime&gt; 替换为var 即可。
    猜你喜欢
    • 2020-12-18
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2013-08-27
    • 2021-09-17
    相关资源
    最近更新 更多