如何从包含Dart中列表的地图列表中访问值?

时间:2020-08-31 20:16:40

标签: list flutter dart maps

我正在尝试从地图列表中包含的列表中提取值,但是 出现以下错误:未为类型'Object'定义运算符'[]'

从下面的列表中,我想访问一个值,例如'Pizza':

List<Map<String,Object>> questions = [
  {
    'question': 'What is your favorite food',
    'answers': [
      'Pizza',
      'Tacos',
      'Sushi',
    ],
  },
];

当我尝试在答案列表中打印答案时,它不起作用:

// Does not work
// The operator '[]' isn't defined for the type 'Object'
print(questions[0]['answers'][0]);

我可以将答案列表保存到list类型的变量中,然后打印特定的列表项:

// Works
List answerList = questions[0]['answers'];
print(answerList[0]);

为什么第一种方法不起作用,如何使用一个命令使它起作用?

1 个答案:

答案 0 :(得分:2)

与其返回Object,而是返回dynamic,因为它有一个operator []

List<Map<String, dynamic>> questions = [
    {
      'question': 'What is your favorite food',
      'answers': [
        'Pizza',
        'Tacos',
        'Sushi',
      ],
    },
  ];