0

How to access a Map element value by key, when a Map is inside a list?

'rooms': [
        {
          'roomNumber': 1,
          'roomBeds': 1,
          'roomColor': 1,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
        {
          'roomNumber': 2,
          'roomBeds': 3,
          'roomColor': 2,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
      ]

Tried this, doesn't work:

myPODO.rooms[1].['roomBeds']

The error message is:

Class '_InternalLinkedHashMap' has no instance getter 'roomBeds'. Receiver: _LinkedHashMap len:5 Tried calling: roomBeds

2 Answers2

3

Store the items in a list of Map and you can then print the values by key names.

void main() {

  List<Map<String, dynamic>> rooms = [
        {
          'roomNumber': 1,
          'roomBeds': 1,
          'roomColor': 1,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
        {
          'roomNumber': 2,
          'roomBeds': 3,
          'roomColor': 2,
          'roomNumOfDwellers': 0,
          'roomDwellers': [
          ]
        },
      ];

  print(rooms[1]['roomBeds']);
}

gegobyte
  • 4,945
  • 10
  • 46
  • 76
3

try to replace

myPODO.rooms[1].['roomBeds']

with

myPODO.rooms[1]['roomBeds']
GJJ2019
  • 4,624
  • 3
  • 12
  • 22