getByPath function

dynamic getByPath(
  1. dynamic obj,
  2. String path
)

Implementation

dynamic getByPath(dynamic obj, String path) {
  if (obj == null) return null;
  final keys = path.split('.');
  dynamic current = obj;

  for (final key in keys) {
    if (current is Map && current.containsKey(key)) {
      current = current[key];
    } else if (current is List) {
      final index = int.tryParse(key);
      if (index != null && index >= 0 && index < current.length) {
        current = current[index];
      } else {
        return null;
      }
    } else {
      return null;
    }
  }
  return current;
}