get static method

dynamic get(
  1. Map map,
  2. String key, [
  3. dynamic defaultValue
])

Returns the value at key in map using dot notation, or defaultValue when the path is missing.

Top-level keys containing literal dots take precedence over traversal. List elements can be addressed by integer index, e.g. 'users.0.name'.

Implementation

static dynamic get(Map map, String key, [dynamic defaultValue]) {
  if (key.isEmpty) return defaultValue;
  if (map.containsKey(key)) return map[key];
  dynamic current = map;
  for (final segment in key.split('.')) {
    if (current is Map) {
      if (!current.containsKey(segment)) return defaultValue;
      current = current[segment];
    } else if (current is List) {
      final idx = int.tryParse(segment);
      if (idx == null || idx < 0 || idx >= current.length) {
        return defaultValue;
      }
      current = current[idx];
    } else {
      return defaultValue;
    }
  }
  return current;
}